Skip to content
Snippets Groups Projects

ctx, sim: update ctx.h

Closed pippin requested to merge pippin/ctx-fix-parser-on-32bit into main
3 files
+ 228
219
Compare changes
  • Side-by-side
  • Inline
Files
3
+ 221
219
/* ctx git commit: f358a7e1 */
/* ctx git commit: 691a7a62 */
/*
* ctx.h is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -2582,7 +2582,7 @@ void ctx_string_append_float (CtxString *string, float val);
jklmnopqrstuvwxyz{|}~ */
static const struct __attribute__ ((packed)) {uint8_t code; uint32_t a; uint32_t b;}
ctx_font_ascii[]={
{15, 0x0000a008, 0x000007a7},/* length:1959 CTX_SUBDIV:8 CTX_BAKE_FONT_SIZE:160 */
{15, 0x2f2fa008, 0x000007a7},/* length:1959 CTX_SUBDIV:8 CTX_BAKE_FONT_SIZE:160 */
{'(', 0x00000008, 0x00000001},/* Roboto*/
{32, 0x6f626f52, 0x00006f74},
{')', 0x00000008, 0x00000001},
@@ -6129,200 +6129,200 @@ int ctx_pixel_format_ebpp (CtxPixelFormat format);
#endif
#ifndef __CTX_CONSTANTS
#define __CTX_CONSTANTS
#define SQZ_action 191466746u
#define SQZ_addStop 70177936u
#define SQZ_alphabetic 2838306314u
#define SQZ_action 3696112672u
#define SQZ_addStop 220908742u
#define SQZ_alphabetic 2966120946u
#define SQZ_aqua 1635086787u
#define SQZ_arc 6517443u
#define SQZ_arcTo 2233202270u
#define SQZ_beginPath 1761844968u
#define SQZ_bevel 426445178u
#define SQZ_black 1346400376u
#define SQZ_blend 262745544u
#define SQZ_blending 3480977226u
#define SQZ_blendMode 1036946672u
#define SQZ_arcTo 3982854812u
#define SQZ_beginPath 120180698u
#define SQZ_bevel 761062270u
#define SQZ_black 271321868u
#define SQZ_blend 316843154u
#define SQZ_blending 3694082958u
#define SQZ_blendMode 644815934u
#define SQZ_blue 1702194373u
#define SQZ_bottom 297379412u
#define SQZ_bottom 1302706776u
#define SQZ_cap 7365063u
#define SQZ_center 3333013908u
#define SQZ_clear 730795960u
#define SQZ_center 1006603526u
#define SQZ_clear 1094071360u
#define SQZ_clip 1885957319u
#define SQZ_closePath 3976743578u
#define SQZ_closePath 3537486488u
#define SQZ_cmyk 1803120071u
#define SQZ_cmyka 3062872642u
#define SQZ_cmykaS 1515489614u
#define SQZ_cmykS 2970776438u
#define SQZ_cmykSpace 2158213956u
#define SQZ_color 4113199138u
#define SQZ_colorSpace 2978079760u
#define SQZ_compositingMode 1747631346u
#define SQZ_cmyka 3355381580u
#define SQZ_cmykaS 3917993734u
#define SQZ_cmykS 3263315852u
#define SQZ_cmykSpace 2366647638u
#define SQZ_color 4231809138u
#define SQZ_colorSpace 4246256736u
#define SQZ_compositingMode 3764262848u
#define SQZ_copy 2037411783u
#define SQZ_currentColor 3045233808u
#define SQZ_curveTo 4214308788u
#define SQZ_currentColor 3452186816u
#define SQZ_curveTo 48499966u
#define SQZ_cyan 1851881927u
#define SQZ_darken 3637594256u
#define SQZ_defineFont 3455431226u
#define SQZ_defineGlyph 517698760u
#define SQZ_defineTexture 2541406396u
#define SQZ_destinationAtop 1762261548u
#define SQZ_destinationIn 1974899656u
#define SQZ_destinationOut 3450048454u
#define SQZ_destinationOver 3410395560u
#define SQZ_deviceCMYK 475280306u
#define SQZ_deviceRGB 2503222352u
#define SQZ_difference 2667908970u
#define SQZ_darken 2939689930u
#define SQZ_defineFont 813704086u
#define SQZ_defineGlyph 1628031142u
#define SQZ_defineTexture 4030922434u
#define SQZ_destinationAtop 1605909240u
#define SQZ_destinationIn 4096489814u
#define SQZ_destinationOut 1966109282u
#define SQZ_destinationOver 507903672u
#define SQZ_deviceCMYK 3879736092u
#define SQZ_deviceRGB 911778270u
#define SQZ_difference 3137481792u
#define SQZ_done 1701736393u
#define SQZ_drgb 1650946761u
#define SQZ_drgba 2890318204u
#define SQZ_drgbaS 284498328u
#define SQZ_drgbS 2734523996u
#define SQZ_drgbSpace 1678108998u
#define SQZ_drgba 465014226u
#define SQZ_drgbaS 2465325300u
#define SQZ_drgbS 179784888u
#define SQZ_drgbSpace 1000873868u
#define SQZ_end 6581963u
#define SQZ_endFrame 2989111914u
#define SQZ_endGroup 3382848678u
#define SQZ_evenOdd 3958460824u
#define SQZ_endFrame 2645960260u
#define SQZ_endGroup 2864376370u
#define SQZ_evenOdd 3373267632u
#define SQZ_exit 1953069259u
#define SQZ_extend 2410480036u
#define SQZ_extend 2652659078u
#define SQZ_fill 1819044301u
#define SQZ_fillRect 844863334u
#define SQZ_fillRule 3536928922u
#define SQZ_fillRect 3070816944u
#define SQZ_fillRule 2262201016u
#define SQZ_font 1953394637u
#define SQZ_fontSize 3677341438u
#define SQZ_fuchsia 1388713974u
#define SQZ_globalAlpha 2486696782u
#define SQZ_glyph 4143870566u
#define SQZ_gradientAddStop 4202125454u
#define SQZ_fontSize 2620910512u
#define SQZ_fuchsia 439362132u
#define SQZ_globalAlpha 3833809790u
#define SQZ_glyph 1308254186u
#define SQZ_gradientAddStop 2831884664u
#define SQZ_gray 2036429519u
#define SQZ_graya 1057020702u
#define SQZ_grayaS 3143946106u
#define SQZ_grayS 217848836u
#define SQZ_green 2210334888u
#define SQZ_hanging 315820168u
#define SQZ_height 2644040974u
#define SQZ_horLineTo 310288004u
#define SQZ_graya 2560443068u
#define SQZ_grayaS 2408801086u
#define SQZ_grayS 417614710u
#define SQZ_green 1517032782u
#define SQZ_hanging 72134188u
#define SQZ_height 3762298230u
#define SQZ_horLineTo 2754532u
#define SQZ_hue 6649297u
#define SQZ_identity 1295847768u
#define SQZ_ideographic 483722678u
#define SQZ_imageSmoothing 3051511248u
#define SQZ_identity 4029142280u
#define SQZ_ideographic 3361616408u
#define SQZ_imageSmoothing 3109175850u
#define SQZ_join 1852403669u
#define SQZ_kerningPair 2107287266u
#define SQZ_kerningPair 2079485344u
#define SQZ_lab 6447577u
#define SQZ_laba 1633837529u
#define SQZ_labaS 3945150942u
#define SQZ_labaS 4170772618u
#define SQZ_labS 1398956505u
#define SQZ_lch 6841305u
#define SQZ_lcha 1634231257u
#define SQZ_lchaS 1426017758u
#define SQZ_lchaS 2598918966u
#define SQZ_lchS 1399350233u
#define SQZ_left 1952867801u
#define SQZ_lighten 3832222246u
#define SQZ_lighten 2693650260u
#define SQZ_lime 1701669337u
#define SQZ_linearGradient 1237241186u
#define SQZ_lineCap 2995475454u
#define SQZ_lineDash 1187484528u
#define SQZ_lineDashOffset 3122102242u
#define SQZ_lineHeight 1792134122u
#define SQZ_lineJoin 3798665176u
#define SQZ_lineTo 2181648726u
#define SQZ_lineWidth 1866819118u
#define SQZ_lower 3494639400u
#define SQZ_lowerBottom 3353231678u
#define SQZ_magenta 41683490u
#define SQZ_maroon 3330270796u
#define SQZ_maximize 2843333630u
#define SQZ_middle 2338157914u
#define SQZ_miter 2474552592u
#define SQZ_miterLimit 484429810u
#define SQZ_moveTo 2673163660u
#define SQZ_multiply 1455254328u
#define SQZ_linearGradient 905023680u
#define SQZ_lineCap 3957741450u
#define SQZ_lineDash 2886130602u
#define SQZ_lineDashOffset 1904302200u
#define SQZ_lineHeight 1698077880u
#define SQZ_lineJoin 3891781172u
#define SQZ_lineTo 3077153258u
#define SQZ_lineWidth 3851910782u
#define SQZ_lower 697158190u
#define SQZ_lowerBottom 4240938844u
#define SQZ_magenta 578523642u
#define SQZ_maroon 3386542482u
#define SQZ_maximize 4009606768u
#define SQZ_middle 2223770148u
#define SQZ_miter 886459200u
#define SQZ_miterLimit 1856773288u
#define SQZ_moveTo 3083476356u
#define SQZ_multiply 3976122014u
#define SQZ_navy 2037801437u
#define SQZ_newPage 2996263020u
#define SQZ_newPath 2761203478u
#define SQZ_newState 2752539242u
#define SQZ_newPage 2687321890u
#define SQZ_newPath 4208019970u
#define SQZ_newState 3121230612u
#define SQZ_none 1701736413u
#define SQZ_nonzero 2128027674u
#define SQZ_normal 1043559938u
#define SQZ_olive 1261573064u
#define SQZ_paint 3703690370u
#define SQZ_purple 245805398u
#define SQZ_quadTo 1586848216u
#define SQZ_radialGradient 2234069350u
#define SQZ_raise 1568723874u
#define SQZ_raiseTop 3049736746u
#define SQZ_nonzero 2746451764u
#define SQZ_normal 1883425054u
#define SQZ_olive 3415799870u
#define SQZ_paint 1082699806u
#define SQZ_purple 3066163412u
#define SQZ_quadTo 3205866160u
#define SQZ_radialGradient 83850682u
#define SQZ_raise 2772216630u
#define SQZ_raiseTop 1913256554u
#define SQZ_rect 1952671205u
#define SQZ_rectangle 979653324u
#define SQZ_rectangle 1861211308u
#define SQZ_red 6579685u
#define SQZ_relArcTo 1740342202u
#define SQZ_relCurveTo 1444075664u
#define SQZ_relHorLineTo 1006817000u
#define SQZ_relLineTo 567984930u
#define SQZ_relMoveTo 70490176u
#define SQZ_relQuadTo 3275675052u
#define SQZ_relSmoothqTo 3903392508u
#define SQZ_relSmoothTo 3177482922u
#define SQZ_relVerLineTo 861219474u
#define SQZ_restore 3389756388u
#define SQZ_relArcTo 4253296276u
#define SQZ_relCurveTo 2548821600u
#define SQZ_relHorLineTo 3243288302u
#define SQZ_relLineTo 1630005260u
#define SQZ_relMoveTo 429673596u
#define SQZ_relQuadTo 2362773920u
#define SQZ_relSmoothqTo 2960208730u
#define SQZ_relSmoothTo 1725151068u
#define SQZ_relVerLineTo 1112835164u
#define SQZ_restore 1405984258u
#define SQZ_rgb 6449125u
#define SQZ_rgba 1633839077u
#define SQZ_rgbaS 1598860234u
#define SQZ_rgbaS 4158357036u
#define SQZ_rgbS 1398958053u
#define SQZ_rgbSpace 2863441362u
#define SQZ_right 2455820278u
#define SQZ_rotate 91843306u
#define SQZ_round 2051052438u
#define SQZ_roundRectangle 124772996u
#define SQZ_rgbSpace 1625332122u
#define SQZ_right 1751820526u
#define SQZ_rotate 1488065704u
#define SQZ_round 3173447652u
#define SQZ_roundRectangle 3273785582u
#define SQZ_save 1702257127u
#define SQZ_scale 1608340156u
#define SQZ_screen 1686881180u
#define SQZ_setFontSize 3424593464u
#define SQZ_setLineCap 2943395354u
#define SQZ_setLineJoin 697170840u
#define SQZ_setLineWidth 1869312910u
#define SQZ_shadowBlur 1269325404u
#define SQZ_shadowColor 3671019726u
#define SQZ_shadowOffsetX 1199273834u
#define SQZ_shadowOffsetY 2589386586u
#define SQZ_silver 1756290066u
#define SQZ_smoothQuadTo 241605252u
#define SQZ_smoothTo 509706880u
#define SQZ_sourceAtop 251620176u
#define SQZ_sourceIn 3850864476u
#define SQZ_sourceOut 1431529336u
#define SQZ_sourceOver 2655053588u
#define SQZ_sourceTransform 4288534266u
#define SQZ_square 133625030u
#define SQZ_start 4265770694u
#define SQZ_startFrame 4116075414u
#define SQZ_startGroup 329986940u
#define SQZ_stroke 1713463584u
#define SQZ_strokeRect 98241244u
#define SQZ_strokeSource 711534692u
#define SQZ_strokeText 3684637194u
#define SQZ_scale 2647970994u
#define SQZ_screen 3670530854u
#define SQZ_setFontSize 231476456u
#define SQZ_setLineCap 174619460u
#define SQZ_setLineJoin 4048631422u
#define SQZ_setLineWidth 3926586244u
#define SQZ_shadowBlur 3889925774u
#define SQZ_shadowColor 291132682u
#define SQZ_shadowOffsetX 1630263752u
#define SQZ_shadowOffsetY 89733304u
#define SQZ_silver 2643959904u
#define SQZ_smoothQuadTo 954100048u
#define SQZ_smoothTo 174420282u
#define SQZ_sourceAtop 864901378u
#define SQZ_sourceIn 1369048320u
#define SQZ_sourceOut 1938332472u
#define SQZ_sourceOver 134897678u
#define SQZ_sourceTransform 1611809620u
#define SQZ_square 239664392u
#define SQZ_start 4080984002u
#define SQZ_startFrame 2128007688u
#define SQZ_startGroup 4085444064u
#define SQZ_stroke 1444212908u
#define SQZ_strokeRect 1131907664u
#define SQZ_strokeSource 2685374474u
#define SQZ_strokeText 1728824940u
#define SQZ_teal 1818322409u
#define SQZ_text 1954047465u
#define SQZ_textAlign 3477973996u
#define SQZ_textBaseline 1424973332u
#define SQZ_textDirection 185607982u
#define SQZ_texture 971666452u
#define SQZ_title 946515406u
#define SQZ_textAlign 3594701278u
#define SQZ_textBaseline 1453773018u
#define SQZ_textDirection 1179776176u
#define SQZ_texture 785032878u
#define SQZ_title 300059882u
#define SQZ_top 7368681u
#define SQZ_transform 3862209768u
#define SQZ_translate 3005601842u
#define SQZ_transparent 4231278256u
#define SQZ_unmaximize 3186335298u
#define SQZ_userCMYK 4190017706u
#define SQZ_userRGB 363668428u
#define SQZ_verLineTo 625107550u
#define SQZ_viewBox 3037148798u
#define SQZ_white 3660660630u
#define SQZ_width 303173726u
#define SQZ_winding 2804912752u
#define SQZ_wrapLeft 2241102244u
#define SQZ_wrapRight 1285667914u
#define SQZ_transform 3615253204u
#define SQZ_translate 1137670376u
#define SQZ_transparent 1911736550u
#define SQZ_unmaximize 3435737582u
#define SQZ_userCMYK 622108702u
#define SQZ_userRGB 4035904520u
#define SQZ_verLineTo 1200482574u
#define SQZ_viewBox 1582737754u
#define SQZ_white 518020662u
#define SQZ_width 3799171678u
#define SQZ_winding 2304820652u
#define SQZ_wrapLeft 3331521568u
#define SQZ_wrapRight 1810250152u
#define SQZ_x 241u
#define SQZ_xor 7499761u
#define SQZ_y 243u
#define SQZ_yellow 4030545924u
#define SQZ_yellow 490403164u
#endif
#ifndef __CTX_LIBC_H
#define __CTX_LIBC_H
@@ -6725,14 +6725,13 @@ const char *squoze62_utf8_decode (uint64_t id, char *dest);
#ifdef SQUOZE_IMPLEMENTATION
static inline uint32_t MurmurOAAT32 (const char * key, int len)
{
size_t h = 3323198485ul;
for (int i = 0;i < len;i++) {
h ^= key[i];
h *= 0x5bd1e995;
//h &= 0xffffffff;
h &= 0xffffffff;
h ^= h >> 15;
}
return h;
@@ -37420,7 +37419,7 @@ static int is_in_ctx (void)
}
#endif
#if CTX_WASM_ORIG // Renamed from upstream, as we don't want this code to be compiled in, even though we're using Emscripten.
#if EMSCRIPTEN
CTX_EXPORT Ctx *
ctx_wasm_get_context (int flags);
@@ -46290,6 +46289,7 @@ static inline int ctx_is_in_cursor (int x, int y, int size, CtxCursor shape)
return 0;
}
#if 0
static void ctx_tiled_undraw_cursor (CtxTiled *tiled)
{
int cursor_size = ctx_height (tiled->backend.ctx) / 28;
@@ -46321,64 +46321,65 @@ static void ctx_tiled_undraw_cursor (CtxTiled *tiled)
}
}
//static inline void ctx_tiled_draw_cursor (CtxTiled *tiled)
//{
// int cursor_x = (int)ctx_pointer_x (tiled->backend.ctx);
// int cursor_y = (int)ctx_pointer_y (tiled->backend.ctx);
// int cursor_size = ctx_height (tiled->backend.ctx) / 28;
// CtxCursor cursor_shape = tiled->backend.ctx->cursor;
// int no = 0;
//
// if (cursor_x == ctx_tiled_cursor_drawn_x &&
// cursor_y == ctx_tiled_cursor_drawn_y &&
// cursor_shape == ctx_tiled_cursor_drawn_shape)
// ctx_tiled_cursor_same_pos ++;
// else
// ctx_tiled_cursor_same_pos = 0;
//
// if (ctx_tiled_cursor_same_pos >= CTX_FB_HIDE_CURSOR_FRAMES)
// {
// if (ctx_tiled_cursor_drawn)
// ctx_tiled_undraw_cursor (tiled);
// return;
// }
//
// /* no need to flicker when stationary, motion flicker can also be removed
// * by combining the previous and next position masks when a motion has
// * occured..
// */
// if (ctx_tiled_cursor_same_pos && ctx_tiled_cursor_drawn)
// return;
//
// ctx_tiled_undraw_cursor (tiled);
//
// no = 0;
//
// int startx = -cursor_size;
// int starty = -cursor_size;
//
// if (cursor_shape == CTX_CURSOR_ARROW)
// startx = starty = 0;
//
// for (int y = starty; y < cursor_size; y++)
// for (int x = startx; x < cursor_size; x++, no+=4)
// {
// if (x + cursor_x < tiled->width && y + cursor_y < tiled->height)
// {
// if (ctx_is_in_cursor (x, y, cursor_size, cursor_shape))
// {
// int o = ((cursor_y + y) * tiled->width + (cursor_x + x)) * 4;
// tiled->fb[o+0]^=0x88;
// tiled->fb[o+1]^=0x88;
// tiled->fb[o+2]^=0x88;
// }
// }
// }
// ctx_tiled_cursor_drawn = 1;
// ctx_tiled_cursor_drawn_x = cursor_x;
// ctx_tiled_cursor_drawn_y = cursor_y;
// ctx_tiled_cursor_drawn_shape = cursor_shape;
//}
static inline void ctx_tiled_draw_cursor (CtxTiled *tiled)
{
int cursor_x = (int)ctx_pointer_x (tiled->backend.ctx);
int cursor_y = (int)ctx_pointer_y (tiled->backend.ctx);
int cursor_size = ctx_height (tiled->backend.ctx) / 28;
CtxCursor cursor_shape = tiled->backend.ctx->cursor;
int no = 0;
if (cursor_x == ctx_tiled_cursor_drawn_x &&
cursor_y == ctx_tiled_cursor_drawn_y &&
cursor_shape == ctx_tiled_cursor_drawn_shape)
ctx_tiled_cursor_same_pos ++;
else
ctx_tiled_cursor_same_pos = 0;
if (ctx_tiled_cursor_same_pos >= CTX_FB_HIDE_CURSOR_FRAMES)
{
if (ctx_tiled_cursor_drawn)
ctx_tiled_undraw_cursor (tiled);
return;
}
/* no need to flicker when stationary, motion flicker can also be removed
* by combining the previous and next position masks when a motion has
* occured..
*/
if (ctx_tiled_cursor_same_pos && ctx_tiled_cursor_drawn)
return;
ctx_tiled_undraw_cursor (tiled);
no = 0;
int startx = -cursor_size;
int starty = -cursor_size;
if (cursor_shape == CTX_CURSOR_ARROW)
startx = starty = 0;
for (int y = starty; y < cursor_size; y++)
for (int x = startx; x < cursor_size; x++, no+=4)
{
if (x + cursor_x < tiled->width && y + cursor_y < tiled->height)
{
if (ctx_is_in_cursor (x, y, cursor_size, cursor_shape))
{
int o = ((cursor_y + y) * tiled->width + (cursor_x + x)) * 4;
tiled->fb[o+0]^=0x88;
tiled->fb[o+1]^=0x88;
tiled->fb[o+2]^=0x88;
}
}
}
ctx_tiled_cursor_drawn = 1;
ctx_tiled_cursor_drawn_x = cursor_x;
ctx_tiled_cursor_drawn_y = cursor_y;
ctx_tiled_cursor_drawn_shape = cursor_shape;
}
#endif
#endif
@@ -50338,7 +50339,7 @@ Ctx *ctx_new_tft (TFT_eSPI *tft,
}
#endif
#if CTX_WASM_ORIG // Renamed from upstream, as we don't want this code to be compiled in, even though we're using Emscripten.
#ifdef EMSCRIPTEN
#include "emscripten.h"
#include <unistd.h>
@@ -70076,3 +70077,4 @@ int ctx_tinyvg_fd_draw (Ctx *ctx, int fd, int flags)
#endif // CTX_IMPLEMENTATION
#endif // __CTX_H__
Loading