This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project gfxprim.git.
The branch, master has been updated via 130a8dec38dc497519345e822c1ff20a31844868 (commit) via 30f8839e5cb0abf4f3f3ba80a3e4e2f548f485a5 (commit) via cec1288490c39f429c72a4ccd82b261434a5c18f (commit) via 7eb65dcf3a902658aab5ca04bbf801bd77ff9379 (commit) via 94f18b7b1f75a971cea5cdf9ea57f8c23d4f1522 (commit) via e1c9bd3da48fa7a992e807c44cb897a3e22f26bd (commit) from 5d493cb045b66ed27d9136ea524b1e3184732451 (commit)
Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below.
- Log ----------------------------------------------------------------- http://repo.or.cz/w/gfxprim.git/commit/130a8dec38dc497519345e822c1ff20a31844...
commit 130a8dec38dc497519345e822c1ff20a31844868 Author: Cyril Hrubis metan@ucw.cz Date: Sun Aug 11 20:06:26 2013 +0200
backends: BackendInit: Add SDL bpp param.
Signed-off-by: Cyril Hrubis metan@ucw.cz
diff --git a/libs/backends/GP_BackendInit.c b/libs/backends/GP_BackendInit.c index 5a601a0..a9c887f 100644 --- a/libs/backends/GP_BackendInit.c +++ b/libs/backends/GP_BackendInit.c @@ -38,19 +38,43 @@ static void backend_sdl_help(FILE *help, const char *err)
fprintf(help, "libSDL backendn" "--------------n" - "SDL:[FS]:[WxH]n" + "SDL:[FS]:[8]:[16]:[24]:[32]:[WxH]n" " FS - Full Screen moden" + " 8 - Sets 8bppn" + " 16 - Sets 16bppn" + " 24 - Sets 24bppn" + " 32 - Sets 32bppn" " WxH - Display Sizen"); }
static int sdl_params_to_flags(const char *param, GP_Size *w, GP_Size *h, - uint8_t *flags, FILE *help) + GP_Size *bpp, uint8_t *flags, FILE *help) { if (!strcasecmp(param, "FS")) { *flags |= GP_SDL_FULLSCREEN; return 0; }
+ if (!strcmp(param, "8")) { + *bpp = 8; + return 0; + } + + if (!strcmp(param, "16")) { + *bpp = 16; + return 0; + } + + if (!strcmp(param, "24")) { + *bpp = 24; + return 0; + } + + if (!strcmp(param, "32")) { + *bpp = 32; + return 0; + } + /* * Accepts only string with format "intxint" or "intXint" */ @@ -74,7 +98,7 @@ static GP_Backend *backend_sdl_init(char *params, const char *caption, if (params == NULL) return GP_BackendSDLInit(0, 0, 0, 0, caption);
- GP_Size w = 0, h = 0; + GP_Size w = 0, h = 0, bpp = 0; uint8_t flags = GP_SDL_RESIZABLE;
char *s = params; @@ -83,16 +107,16 @@ static GP_Backend *backend_sdl_init(char *params, const char *caption, switch (*s) { case ':': (*s) = '0'; - if (sdl_params_to_flags(params, &w, &h, &flags, help)) + if (sdl_params_to_flags(params, &w, &h, &bpp, &flags, help)) return NULL; s++; params = s; break; case '0': - if (sdl_params_to_flags(params, &w, &h, &flags, help)) + if (sdl_params_to_flags(params, &w, &h, &bpp, &flags, help)) return NULL;
- return GP_BackendSDLInit(w, h, 0, flags, caption); + return GP_BackendSDLInit(w, h, bpp, flags, caption); break; } s++;
http://repo.or.cz/w/gfxprim.git/commit/30f8839e5cb0abf4f3f3ba80a3e4e2f548f48...
commit 30f8839e5cb0abf4f3f3ba80a3e4e2f548f485a5 Author: Cyril Hrubis metan@ucw.cz Date: Sun Aug 11 19:51:25 2013 +0200
loaders: JPG: Don't convert RGB to BGR by default.
The loader was swapping the RGB and BGR in order return context in standard format.
Now this is not needed as the library handles both RGB and BGR well.
And it also slows things down when the conversion is unnecessary, i.e. Load image, Resize, Save.
Or when the conversion could be done on resized image, i.e. Load image, Resize, Blit on the screen (this was about 15% slower on photos from digital camera).
In order to get this work loaders must be converted to automatic conversions between RGB888 and BGR888. I was trying to avoid doing any conversions in loaders but I'm fine with this particular one.
The JPEG loader is already modified to handle both. More to come.
Signed-off-by: Cyril Hrubis metan@ucw.cz
diff --git a/libs/loaders/GP_JPG.c b/libs/loaders/GP_JPG.c index d7d3bf7..097308b 100644 --- a/libs/loaders/GP_JPG.c +++ b/libs/loaders/GP_JPG.c @@ -106,6 +106,54 @@ static const char *get_colorspace(J_COLOR_SPACE color_space) }; }
+static int load(struct jpeg_decompress_struct *cinfo, GP_Context *ret, + GP_ProgressCallback *callback) +{ + while (cinfo->output_scanline < cinfo->output_height) { + uint32_t y = cinfo->output_scanline; + JSAMPROW addr = (void*)GP_PIXEL_ADDR(ret, 0, y); + + jpeg_read_scanlines(cinfo, &addr, 1); + + if (GP_ProgressCallbackReport(callback, y, ret->h, ret->w)) { + GP_DEBUG(1, "Operation aborted"); + return ECANCELED; + } + } + + return 0; +} + +static int load_cmyk(struct jpeg_decompress_struct *cinfo, GP_Context *ret, + GP_ProgressCallback *callback) +{ + while (cinfo->output_scanline < cinfo->output_height) { + uint32_t y = cinfo->output_scanline; + + JSAMPROW addr = (void*)GP_PIXEL_ADDR(ret, 0, y); + jpeg_read_scanlines(cinfo, &addr, 4); + + unsigned int i; + uint8_t *buf = GP_PIXEL_ADDR(ret, 0, y); + + for (i = 0; i < ret->w; i++) { + unsigned int j = 4 * i; + + buf[j] = 0xff - buf[j]; + buf[j+1] = 0xff - buf[j+1]; + buf[j+2] = 0xff - buf[j+2]; + buf[j+3] = 0xff - buf[j+3]; + } + + if (GP_ProgressCallbackReport(callback, y, ret->h, ret->w)) { + GP_DEBUG(1, "Operation aborted"); + return ECANCELED; + } + } + + return 0; +} + GP_Context *GP_ReadJPG(FILE *f, GP_ProgressCallback *callback) { struct jpeg_decompress_struct cinfo; @@ -138,7 +186,7 @@ GP_Context *GP_ReadJPG(FILE *f, GP_ProgressCallback *callback) pixel_type = GP_PIXEL_G8; break; case JCS_RGB: - pixel_type = GP_PIXEL_RGB888; + pixel_type = GP_PIXEL_BGR888; break; case JCS_CMYK: pixel_type = GP_PIXEL_CMYK8888; @@ -165,44 +213,21 @@ GP_Context *GP_ReadJPG(FILE *f, GP_ProgressCallback *callback)
jpeg_start_decompress(&cinfo);
- while (cinfo.output_scanline < cinfo.output_height) { - uint32_t y = cinfo.output_scanline; - - JSAMPROW addr = (void*)GP_PIXEL_ADDR(ret, 0, y); - jpeg_read_scanlines(&cinfo, &addr, 1); - - if (pixel_type == GP_PIXEL_RGB888) { - //TODO: fixme bigendian? - /* fix the pixel, as we want in fact BGR */ - unsigned int i; - - for (i = 0; i < ret->w; i++) { - uint8_t *pix = GP_PIXEL_ADDR(ret, i, y); - GP_SWAP(pix[0], pix[2]); - } - - if (GP_ProgressCallbackReport(callback, y, ret->h, ret->w)) { - GP_DEBUG(1, "Operation aborted"); - err = ECANCELED; - goto err2; - } - } - - if (pixel_type == GP_PIXEL_CMYK8888) { - unsigned int i; - uint8_t *buf = GP_PIXEL_ADDR(ret, 0, y); - - for (i = 0; i < ret->w; i++) { - unsigned int j = 4 * i; - - buf[j] = 0xff - buf[j]; - buf[j+1] = 0xff - buf[j+1]; - buf[j+2] = 0xff - buf[j+2]; - buf[j+3] = 0xff - buf[j+3]; - } - } + switch (pixel_type) { + case GP_PIXEL_BGR888: + case GP_PIXEL_G8: + err = load(&cinfo, ret, callback); + break; + case GP_PIXEL_CMYK8888: + err = load_cmyk(&cinfo, ret, callback); + break; + default: + err = EINVAL; }
+ if (err) + goto err2; + jpeg_finish_decompress(&cinfo); jpeg_destroy_decompress(&cinfo);
@@ -320,6 +345,54 @@ int GP_LoadJPGMetaData(const char *src_path, GP_MetaData *data) return ret; }
+static int save_rgb888(struct jpeg_compress_struct *cinfo, + const GP_Context *src, + GP_ProgressCallback *callback) +{ + unsigned int x; + uint8_t tmp[3 * src->w]; + + while (cinfo->next_scanline < cinfo->image_height) { + uint32_t y = cinfo->next_scanline; + + memcpy(tmp, GP_PIXEL_ADDR(src, 0, y), 3 * src->w); + + for (x = 0; x < src->w; x++) { + uint8_t *pix = tmp + 3 * x; + GP_SWAP(pix[0], pix[2]); + } + + JSAMPROW row = (void*)tmp; + jpeg_write_scanlines(cinfo, &row, 1); + + if (GP_ProgressCallbackReport(callback, y, src->h, src->w)) { + GP_DEBUG(1, "Operation aborted"); + return ECANCELED; + } + } + + return 0; +} + +static int save(struct jpeg_compress_struct *cinfo, + const GP_Context *src, + GP_ProgressCallback *callback) +{ + while (cinfo->next_scanline < cinfo->image_height) { + uint32_t y = cinfo->next_scanline; + + JSAMPROW row = (void*)GP_PIXEL_ADDR(src, 0, y); + jpeg_write_scanlines(cinfo, &row, 1); + + if (GP_ProgressCallbackReport(callback, y, src->h, src->w)) { + GP_DEBUG(1, "Operation aborted"); + return ECANCELED; + } + } + + return 0; +} + int GP_SaveJPG(const GP_Context *src, const char *dst_path, GP_ProgressCallback *callback) { @@ -330,9 +403,13 @@ int GP_SaveJPG(const GP_Context *src, const char *dst_path,
GP_DEBUG(1, "Saving JPG Image '%s'", dst_path);
- if (src->pixel_type != GP_PIXEL_RGB888 && - src->pixel_type != GP_PIXEL_G8) { - GP_DEBUG(1, "Can't save png with pixel type %s", + switch (src->pixel_type) { + case GP_PIXEL_RGB888: + case GP_PIXEL_BGR888: + case GP_PIXEL_G8: + break; + default: + GP_DEBUG(1, "Unsupported pixel type %s", GP_PixelTypeName(src->pixel_type)); errno = ENOSYS; return 1; @@ -369,35 +446,17 @@ int GP_SaveJPG(const GP_Context *src, const char *dst_path,
jpeg_start_compress(&cinfo, TRUE);
- while (cinfo.next_scanline < cinfo.image_height) { - uint32_t y = cinfo.next_scanline; - - if (src->pixel_type == GP_PIXEL_RGB888) { - uint32_t i; - uint8_t tmp[3 * src->w]; - - memcpy(tmp, GP_PIXEL_ADDR(src, 0, y), 3 * src->w); - - /* fix the pixels as we want in fact BGR */ - for (i = 0; i < src->w; i++) { - uint8_t *pix = tmp + 3 * i; - GP_SWAP(pix[0], pix[2]); - } - - JSAMPROW row = (void*)tmp; - jpeg_write_scanlines(&cinfo, &row, 1); - } else { - JSAMPROW row = (void*)GP_PIXEL_ADDR(src, 0, y); - jpeg_write_scanlines(&cinfo, &row, 1); - } - - if (GP_ProgressCallbackReport(callback, y, src->h, src->w)) { - GP_DEBUG(1, "Operation aborted"); - err = ECANCELED; - goto err3; - } + switch (src->pixel_type) { + case GP_PIXEL_RGB888: + err = save_rgb888(&cinfo, src, callback); + break; + default: + err = save(&cinfo, src, callback); }
+ if (err) + goto err3; + jpeg_finish_compress(&cinfo); jpeg_destroy_compress(&cinfo);
http://repo.or.cz/w/gfxprim.git/commit/cec1288490c39f429c72a4ccd82b261434a5c...
commit cec1288490c39f429c72a4ccd82b261434a5c18f Author: Cyril Hrubis metan@ucw.cz Date: Sun Aug 11 19:31:22 2013 +0200
Blit: Debug print now logs src and dst pixel type.
Signed-off-by: Cyril Hrubis metan@ucw.cz
diff --git a/libs/core/GP_Blit.gen.c.t b/libs/core/GP_Blit.gen.c.t index 2046350..b702e88 100644 --- a/libs/core/GP_Blit.gen.c.t +++ b/libs/core/GP_Blit.gen.c.t @@ -268,6 +268,10 @@ void GP_BlitXYXY_Fast(const GP_Context *src, GP_Coord x0, GP_Coord y0, GP_Coord x1, GP_Coord y1, GP_Context *dst, GP_Coord x2, GP_Coord y2) { + GP_DEBUG(2, "Blitting %s -> %s", + GP_PixelTypeName(src->pixel_type), + GP_PixelTypeName(dst->pixel_type)); + /* Same pixel type */ if (src->pixel_type == dst->pixel_type) { GP_FN_PER_BPP(blitXYXY, src->bpp, src->bit_endian,
http://repo.or.cz/w/gfxprim.git/commit/7eb65dcf3a902658aab5ca04bbf801bd77ff9...
commit 7eb65dcf3a902658aab5ca04bbf801bd77ff9379 Author: Cyril Hrubis metan@ucw.cz Date: Sun Aug 11 12:44:44 2013 +0200
doc: Update backends docs.
Add Linux frame-buffer parameters.
Add AA-lib backend docs.
Signed-off-by: Cyril Hrubis metan@ucw.cz
diff --git a/doc/backends.txt b/doc/backends.txt index 6cbbf09..7509d56 100644 --- a/doc/backends.txt +++ b/doc/backends.txt @@ -1,17 +1,22 @@ Drawing Backends ================
-Drawing backends provide means to draw into computer screen or into a window -inside of running operating system. Instead of having one unified -initialization interface each backend has it's specific function and semantics -but once backend is initialized the backend structure provides unified API for -controlling the drawing. - -So far there are backends for Linux mmaped 'frame-buffer', 'libSDL' and -'X Window System'. +Drawing backends provide means to draw on computer screen or into a window. +Instead of having one unified initialization interface each backend has it's +specific function and semantics but once backend is initialized the backend +structure provides unified API for controlling the drawing.
TIP: For example usage see backend link:example_backend.html[example].
+Supported backends +------------------ + +* Linux mmaped 'frame-buffer' +* link:http://www.libsdl.org/%5BSDL] +* 'X Window System' +* link:http://aa-project.sourceforge.net/aalib/%5BAA-lib] + + Initialization functions ------------------------
@@ -20,17 +25,28 @@ Linux Framebuffer
[source,c] ------------------------------------------------------------------------------- -GP_Backend *GP_BackendLinuxFBInit(const char *path, int flag); +enum GP_LinuxFBFlags { + GP_FB_INPUT_KBD = 0x01, + GP_FB_SHADOW = 0x02, + GP_FB_ALLOC_CON = 0x04, +}; + +GP_Backend *GP_BackendLinuxFBInit(const char *path, int flags); -------------------------------------------------------------------------------
Initializes mmaped frame-buffer backend. The path is path to the frame-buffer -device i.e. '/dev/fbX'. This backend is not buffered, everything you draw -appears on the screen right away (an switch may be added for that purpose). +device i.e. '/dev/fbX'. + +If 'GP_FB_INPUT_KBD' flag is set console KBD driver is used to feed keystrokes +into the event queue, otherwise no events are generated and you are expected to +initialize input event driver yourself.
-If flag is set console KBD driver is used to feed keystrokes into the event -queue, otherwise no events are generated and you are expected to initialize -input event driver in order to get keystrokes and/or pointer events. +If 'GP_FB_SHADOW' flag is set shadow frame-buffer is allocated and used for +drawing, the memory is blitted to mmaped frame-buffer on Blit() or UpdateRect() +operation. Otherwise the frame-buffer mapped memory is used directly.
+If 'GP_FB_ALLOC_CON' flag is set new console is allocated, otherwise current +console is used.
SDL ~~~ @@ -59,10 +75,9 @@ for w and h though.
The caption is window caption.
-And finally flags may change the SDL to go to full-screen mode or make the +And finally flags may change the 'SDL' to go to full-screen mode or make the window resizable.
- [source,c] ------------------------------------------------------------------------------- #include <backends/GP_SDL_Context.h> @@ -163,6 +178,22 @@ The 'GP_BackendX11RequestFullscreen' can toggle fullscreen mode at runtime.
It will most likely generate resize event. See the 'GP_BackendResizeAck()' bellow.
+AA-lib +~~~~~~ + +[source,c] +------------------------------------------------------------------------------- +#include <GP.h> +/* or */ +#include <backends/AALib.h> + +GP_Backend *GP_BackendAALibInit(void); +------------------------------------------------------------------------------- + +Currently the 'AA-lib' backend uses default initialization parameters. + +Way how to pass 'AA-lib' specific parameters will be added. This interface +will likely change.
Overall init function ~~~~~~~~~~~~~~~~~~~~~ @@ -180,7 +211,7 @@ GP_Backend *GP_BackendInit(const char *params, const char *caption, FILE *help); This function takes a params string as an parameter which is used for determining backend-dependent parameters. The format is 'backend_name:backend_parameters' where backend parameters may be window size -(either 'WxH' or 'FS' in case of SDL backend). The caption is window caption +(either 'WxH' or 'FS' in case of 'SDL' backend). The caption is window caption (which is ignored in some of the cases) and the 'FILE' is file, where an error is printed in case of failure, you should mostly use 'stderr' for that purpose. If params is set to 'NULL' the the call only prints help into the @@ -195,8 +226,9 @@ General Backend API The backend API consist of a structure with callbacks. Every backend initialization yields this structure. Although is possible to call these pointers directly it's not recommended and everybody should rather use backend -inline functions instead as they provide more convenient API and do additional -sanity checks on parameters. +(inline) functions instead as they provide more convenient API and do +additional sanity checks on parameters. Also functionality such as timers +will not work if you decide to call raw callbacks.
[source,c] ------------------------------------------------------------------------------- @@ -220,9 +252,9 @@ typdef struct GP_Backend { }; -------------------------------------------------------------------------------
-The file descriptor 'fd' is either set to -1 (in case of SDL that does not -export it) or to a backend connection file descriptor usable for 'select()' or -'poll()'. +The file descriptor 'fd' is either set to -1 (in case of 'SDL' or 'AA-lib' as +they does not export it) or to a backend connection file descriptor usable for +'select()' or 'poll()'.
GP_BackendExit ^^^^^^^^^^^^^^ diff --git a/doc/loaders_python.txt b/doc/loaders_python.txt index de37a29..42dff04 100644 --- a/doc/loaders_python.txt +++ b/doc/loaders_python.txt @@ -26,11 +26,9 @@ import gfxprim.loaders as loaders
Loads an image from a file.
-This is a general purpose loader function that automatically detects the file -format. - -The format is detected from file extension first and if this fails signature -base method is used. +First one is general purpose loader function that automatically detects the +file format. The format is detected from file extension first and if this +fails files signature is used.
May raise 'OSError' with errno set to 'EPERM', 'EISDIR', 'ENOENT' or any other 'errno' set by 'open(2)', 'read(2)', 'seek(2)'.
http://repo.or.cz/w/gfxprim.git/commit/94f18b7b1f75a971cea5cdf9ea57f8c23d4f1...
commit 94f18b7b1f75a971cea5cdf9ea57f8c23d4f1522 Author: Cyril Hrubis metan@ucw.cz Date: Fri Aug 9 14:17:01 2013 +0200
backends: Rename GP_ContextFromSurface()
Rename GP_ContextFromSurface() to GP_ContextFromSDLSurface()
Signed-off-by: Cyril Hrubis metan@ucw.cz
diff --git a/build/syms/Backend_symbols.txt b/build/syms/Backend_symbols.txt index de8f248..1824e2d 100644 --- a/build/syms/Backend_symbols.txt +++ b/build/syms/Backend_symbols.txt @@ -9,7 +9,7 @@ GP_BackendIsX11 GP_BackendX11RequestFullscreen
GP_BackendSDLInit -GP_ContextFromSurface +GP_ContextFromSDLSurface
GP_BackendAALibInit
diff --git a/demos/c_simple/SDL_glue.c b/demos/c_simple/SDL_glue.c index d5b5cb7..2260c22 100644 --- a/demos/c_simple/SDL_glue.c +++ b/demos/c_simple/SDL_glue.c @@ -96,7 +96,7 @@ int main(void) goto fail; }
- GP_ContextFromSurface(&context, display); + GP_ContextFromSDLSurface(&context, display);
black_pixel = GP_ColorToContextPixel(GP_COL_BLACK, &context); darkgray_pixel = GP_ColorToContextPixel(GP_COL_GRAY_DARK, &context); diff --git a/doc/backends.txt b/doc/backends.txt index a57a7ad..6cbbf09 100644 --- a/doc/backends.txt +++ b/doc/backends.txt @@ -67,7 +67,7 @@ window resizable. ------------------------------------------------------------------------------- #include <backends/GP_SDL_Context.h>
-int GP_ContextFromSurface(GP_Context *c, const SDL_Surface *surf); +int GP_ContextFromSDLSurface(GP_Context *c, const SDL_Surface *surf); -------------------------------------------------------------------------------
This function allows you to mix 'SDL' and 'GFXprim' code. diff --git a/doc/example_SDL_glue.txt b/doc/example_SDL_glue.txt index 04ca2f9..aab453f 100644 --- a/doc/example_SDL_glue.txt +++ b/doc/example_SDL_glue.txt @@ -1,7 +1,7 @@ SDL Glue Example ----------------
-You can easily mix SDL and GFXprim code using 'GP_ContextFromSurface()' +You can easily mix SDL and GFXprim code using 'GP_ContextFromSDLSurface()' function.
[source,c] diff --git a/include/backends/GP_SDL_Context.h b/include/backends/GP_SDL_Context.h index 4ed5aad..011273f 100644 --- a/include/backends/GP_SDL_Context.h +++ b/include/backends/GP_SDL_Context.h @@ -34,7 +34,7 @@ * * GP_Context c; * - * if (GP_ContextFromSurface(&c, surface)) { + * if (GP_ContextFromSDLSurface(&c, surface)) { * error("Failed to match PIXEL_TYPE for given surface"); * exit(1); * } @@ -44,6 +44,6 @@ * Now you have initialized context that shares the pixel buffer with * the SDL surface. */ -int GP_ContextFromSurface(GP_Context *c, const SDL_Surface *surf); +int GP_ContextFromSDLSurface(GP_Context *c, const SDL_Surface *surf);
#endif /* BACKENDS_GP_SDL_CONTEXT_H */ diff --git a/libs/backends/GP_SDL.c b/libs/backends/GP_SDL.c index 7fde309..47a7f94 100644 --- a/libs/backends/GP_SDL.c +++ b/libs/backends/GP_SDL.c @@ -154,7 +154,7 @@ static int context_from_surface(GP_Context *context, const SDL_Surface *surf) return 0; }
-int GP_ContextFromSurface(GP_Context *c, const SDL_Surface *surf) +int GP_ContextFromSDLSurface(GP_Context *c, const SDL_Surface *surf) { return context_from_surface(c, surf); }
http://repo.or.cz/w/gfxprim.git/commit/e1c9bd3da48fa7a992e807c44cb897a3e22f2...
commit e1c9bd3da48fa7a992e807c44cb897a3e22f26bd Author: Cyril Hrubis metan@ucw.cz Date: Mon Aug 5 23:42:14 2013 +0200
build: Update list of backend symbols.
Signed-off-by: Cyril Hrubis metan@ucw.cz
diff --git a/build/check_symbols.sh b/build/check_symbols.sh index a26b92c..7f8ff8d 100755 --- a/build/check_symbols.sh +++ b/build/check_symbols.sh @@ -15,7 +15,7 @@ function grep_sym function find_symbol { echo "SYM $1:" - + find ../libs/ -name '*.o' | while read obj; do grep_sym "$obj" "$1"; done }
diff --git a/build/syms/Backend_symbols.txt b/build/syms/Backend_symbols.txt index 7d5128e..de8f248 100644 --- a/build/syms/Backend_symbols.txt +++ b/build/syms/Backend_symbols.txt @@ -9,9 +9,10 @@ GP_BackendIsX11 GP_BackendX11RequestFullscreen
GP_BackendSDLInit - GP_ContextFromSurface
+GP_BackendAALibInit + GP_BackendResize GP_BackendResizeAck GP_BackendUpdateRectXYXY
-----------------------------------------------------------------------
Summary of changes: build/check_symbols.sh | 2 +- build/syms/Backend_symbols.txt | 3 +- demos/c_simple/SDL_glue.c | 2 +- doc/backends.txt | 78 +++++++++++----- doc/example_SDL_glue.txt | 2 +- doc/loaders_python.txt | 8 +- include/backends/GP_SDL_Context.h | 4 +- libs/backends/GP_BackendInit.c | 36 ++++++- libs/backends/GP_SDL.c | 2 +- libs/core/GP_Blit.gen.c.t | 4 + libs/loaders/GP_JPG.c | 193 ++++++++++++++++++++++++------------- 11 files changed, 226 insertions(+), 108 deletions(-)
repo.or.cz automatic notification. Contact project admin jiri.bluebear.dluhos@gmail.com if you want to unsubscribe, or site admin admin@repo.or.cz if you receive no reply.