Gfxprim
Threads by month
- ----- 2026 -----
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- 929 discussions
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 annotated tag, 1.0.0-rc0 has been created
at 82893bc42b617a7f4fd9f2783bc44df1ca360046 (tag)
tagging 834cc1ebc413ddcae710eda665917661f2c7e71e (commit)
tagged by Cyril Hrubis
on Wed May 8 17:15:42 2013 +0200
- Log -----------------------------------------------------------------
GFXprim 1.0.0-rc0
BlueBear (128):
Separated core library; overhaul to move maximum code to platform independent core.
BufferInfo and ClipInfo merged into Context struct
Added circle to core.
Test now detects both under- and overdraws.
Added GP_CalcLinePoints() (beware, untested).
A temporary fix (kludge) for missing pixels on triangle boundary.
Cleaned (hopefully) GP_Line().
Merge ssh://repo.or.cz/srv/git/gfxprim
Deleted old C files that were not used anymore.
That ugly fix in FillTriangle() was not applied in some cases; fixed.
Simplified GP_CalcLinePoints (BEWARE, still untested).
Ellipse() and FillEllipse() are now in core.
GP_Text() is now part of the core.
Added GP_FillRect() to core.
Removed redundant SDL calls; fixed off-by-one bug in GP_FillRect.
Removed obsolete GP_SDL_xxx.c files.
GP_GetPixel() moved into core.
Removed few unused SDL-related files.
(API CHANGE) Swapped arguments of GP_SDL_ContextFromSurface() to match the order they are mentioned in the function name.
Added two more orientation flags (not functional yet).
Added core/tests to automated make run.
Added basic pixel type detection for SDL.
Added missing names for new pixel types and return codes.
Changed file names in the SDL target to camelcase.
Added GP_SDL_VideoInit.
Simplified color<->pixel conversions by using a single table.
Added GP_NOCOLOR entry to switches in GP_Color, and one more debug message to GP_SDL_VideoInit().
Started re-creating of the separated algorithm files.
Merge git://repo.or.cz/gfxprim
GP_FillRow is not needed anymore with the new transformation API.
GP_FillColumn() is no more needed with the new transformation API.
Renamed line.algo.c to Line.algo.c to keep a consistent style.
Renamed 'COLOR_T' to 'PIXVAL_T' which reflects the reality more.
Separated Circle and Ellipse algorithms.
Separated FillCircle().
Separated FillEllipse().
Separated FillTriangle().
Added algo/README.
Merge ssh://repo.or.cz/srv/git/gfxprim
Separated the font drawing algorithm, and fixes.
Algorithms are now macros (much easier to include, make code shorter).
Changed the rest of algos to macros. Added a HLine algo.
Removed the deprecated generic/ directory (code now moved to algo/).
Better checks for NULL context and invalid context.
Clipping out is not an error, no sense in returning EINVAL.
Added a few color conversions.
More sanity checks to GP_SDL_Context.
Drawing routines now accept GP_Pixel instead of GP_Color; this makes the
Added support for text baseline and alignment.
Fixed segfault in framebuffer_test when framebuffer is not available.
GP_ColorToPixel() and friends now accept GP_Context instead of pixel
Added XYXY and XYWH variants to some calls.
Added XYY and XYH variant to GP_VLine(); fixed a trivial bug in
Added GP_GetContextPixelType().
Added GP_TextAscent() and GP_TextDescent().
Fixed coding style with pointers.
Added some metadata to the font structure (first step to loadable
Initial attempt at on-disc font format.
Added a version to the on-disc font format.
Added pre- and post-offset to glyphs.
Documented the character preamble; fixed character byte size
Cleaned up character data, fixed (partly) size calculations.
Moved 'hspace' from font to style where it belongs more. Adjusted
Merge ssh://repo.or.cz/srv/git/gfxprim
Replaced char_width with more max_bounding_width; fixed maximum string
First attempt at font loader.
Fixed (hopefully) the -1 error in text positioning.
Removed the now redundant 'lmargin' character field.
Removed a now-unused variable.
The 'fileview' test (initial version, does not work).
Slightly cleaner handling of unencoded characters.
Slight rewording of the documentation.
Added GP_RGBToPixel().
Rewritten line drawing algorithm to fix subtle bugs (read: mindless copy
Removed old_... variables from GP_FillTriangle.
Fixed a typo in Makefile, now core is rebuilt when algorithms are changed.
Removed GP_CalcLinePoints, replaced by GP_RasterizeLine().
Triangle rendering fix ("Overkill edition")
New triangle implementation (Now without 16kB/triangle!)
Removed the (now redundant) 'touched' variable.
Simplified LineTrack API.
Added pause key to the demo to see more precisely what's going on.
Merge ssh://repo.or.cz/srv/git/gfxprim
Fixed a drawing bug in very low and wide triangles; still not ideal though.
Preliminary reimplementation of triangles (using floats so far, will be
Merge ssh://repo.or.cz/srv/git/gfxprim
Made tests non-mandatory (use 'make tests' to build them).
Merge ssh://repo.or.cz/srv/git/gfxprim
Tests should only exit on Esc; 'any key' makes them too easy to disappear when
Subdivided triangle renderer to proper cases for better debugging.
Added the GP_SIGN macro.
New triangle version "Persistence". Even very flat triangles should be
Added GP_BoxCenteredText().
Merge ssh://repo.or.cz/srv/git/gfxprim
Added test of GP_TBoxCenteredText().
Fixed a stupid bug in text ascent in GP_BoxCenteredText().
Fonttest now prints some font data to console for better checking.
Fixed a bug in font parser that caused fonts with some dimensions to
Another version of triangle rendering, probably a bit better.
Removed PUTPIXELs from FillTriangle().
Clarified comments and added TOP and BOTTOM.
Merge ssh://repo.or.cz/srv/git/gfxprim
Initial implementation of convex polygon drawing.
Used an array and qsort() in polygon code.
Added the GP_BUG_ON macro.
Multicolored sierpinsky to aid visual analysis.
Filled triangles are now drawn with polygons.
Hopefully better approximation of polygon area.
Differentiated GP_CHECK and GP_ASSERT (thx gavento for pointing this out).
Tetragons now drawn with the polygon routine.
Fixed stupid typo in GP_ASSERT; minor cleanups
Better sanity checks for text routines.
First attempt on transparent backends.
-ldl is needed for the SDL backend to build.
Separate directory for backends.
First try on backend event API.
Initial attempt on rings (only circular for now).
Fixed some +/-1 errors in Ring and improved API.
Fixed (hopefully) more +/-1 errors in Ring.
Merge branch 'generate' of git://repo.or.cz/gfxprim into generate
Fixed some typos in documentation.
More precise documentation of line drawing functions and subcontexts.
Slightly refined documentation for circles and ellipses.
Added first support for arcs (currently with very strange syntax).
Merge branch 'master' of git://repo.or.cz/gfxprim
Arcs, version 2; still strange and doubtful.
Merge branch 'master' of git://repo.or.cz/gfxprim
Simplified GP_ArcSegment() and extended it to two quadrants.
Cyril Hrubis (1132):
Small fix in HLine generating macro.
Fixed fix, this time right.
Forgotten to add filters to .PHONY targets.
Working on rotation filters.
Fixed really nasty typo in GETPIXEL macros.
Some more work on loaders and filters.
Added install target for filters.
'make install' should not trigger 'make all'.
Started to write gfxprim input layer.
Fixed Rotate headers broken by previous heaers merge.
Fix some under-baseline special characters.
Remove tests for color and palette.
Rewritten GP_font_save to use check.
Removed old and broken GP_ReadPixel.
Fix fileview.
Fine tuning default fonts.
Fixed misedited maximal bouding box size.
Fixed framebuffer initialization, now it
Added context w and h accessors.
Introduced GP_ContextFlagsRotateCW and CCW.
Updated documentation for newly introduced functions.
Merge branch 'master' of git://repo.or.cz/gfxprim
Introduced new function, cleanup.
Font loader should not touch font pointer on error.
Remove unused macros.
The filled triangle should use GP_TPutPixel() not GP_PutPixel().
Simplified drawing API and unified context check.
Updated documentation.
Fix the FnPerBpp macro (now with GNU preprocessor extensions).
Fix FillTriangle pointer passing.
Make FnPerBpp() even more clear.
Merge branch 'master' of git://repo.or.cz/gfxprim
Fix ambiguous else statement.
Fix the directory layout and build system.
build: Fix bashism (to work on debian with their dash).
build: slightly better library linker scripts.
build: Hacked together the deprecated SDL backend and it's tests.
build: Added infrastructure for using python generators.
Fix bad merge.
Fix header generator dependencies.
Fix the clean target redefinition.
build: Fixed build, now we can create lib from directory.
build: Fixed the 'make install'.
build: Fixed the link library for tests.
build: Moved the 'sdl' rather to 'SDL'.
build: The link creation must be spinlocked too.
build: Fix library soname.
Started to fix surrounding library code.
Fix some typos and warnings.
Made the gfx library work with the generated code.
Fixed Text library compilation.
Fixed Filters to work with generated code.
Delete debug lines.
Fix the default types, offsets was backwards.
Fixed GP_Color and Pixel so that SDL demos compile.
Changed GP_Color api.
Merge branch 'master' into generate
Fix merge.
Fix nasty Make system bug.
Merge branch 'master' into generate
Fix previously forgotten color initializaiton.
Coding style, typos.
Fix off by one bug causing segfaults.
Fix some overly long lines.
API change for gfx library.
Removed clipping rectangle in preparation for subcontext.
Minor core and gfx cleanup.
Updated docs to match the code.
First version of GFXprim input events.
Merge /home/metan/Prog/gfxprim into generate
Fixed bug in setting key bitmap.
Move the asserts in text where they belong.
Fix the exit to call SDL_Exit() and show keys.
Move the key name down.
Fix compatibility with older python and jinja by Tomas.
Merge /home/metan/gfxprim into generate
Remove the unconsistent check for zero size.
Added simple debug print functionality.
Pixel matching now uses debug interface.
Minor coding style fix.
Fix wrong parameters order (first pixel then pixel_type).
Fixed PGM loader, added blittest.
Added naive context conversion (based on blit).
Added loaders into GP.h.
Cleaned up the blittest code.
Changed the GP_PIXEL_Vx to GP_PIXEL_Gx.
Unbreak the testsuite.
Fixed WritePixels24().
Added 8-8-4 palette colors.
Quick and dirty tests for GP_WritePixel (byte aligned pixels only).
Small fixes for WritePixel test.
Made the TextMetric use default style.
Added experimental subcontext support.
Fixed the clipping for the time being.
Working on PPM loader (binary works).
More PPM work (image saving).
Add showimage test.
Fix wrong order on PPM load.
Started to work on bitmap resize filters.
Small GP_ContextCopy() fixup.
Added simple brightness filter.
Add missing braces around macro parameter.
Added basic PNG support using libpng.
Added function to load image of any supported format.
Add support for png 1BPP palette (eg. black&white).
First version of bicubic interpolation, only for rgb888 now.
Unrolled inner loops and used gcc vector aritmetics.
Moved the cubic coeficient generation out of main loop.
Count the coeficients before we round the coordinate.
Get rid of -std=gnu9 as it breaks clang.
Fix some headers.
Some more cleanup and moving things back and forth.
Added grinder demo on gfxprim bitmap filters.
grinder: far better parameter checks and error messages.
Help is autogenerated from parameter descriptions.
Creates simple contrast filter.
More work on grinder.
Created template for point pixel filters.
Added new filter to grinder.
Some bicubic parameters fine tuning.
First simple linear blur.
Implemented linear convolution and gaussian blur.
Fix linear convolution corner cases at the corners.
Cleaned up the point pixel template.
Remove scale test as demos/grinder serves better.
Cleaned up resize filters api, prepared for progress callback.
The GP.h header shouldn't be used in library itself.
Way more work on the progress callback.
Some small fixes for grinder.
grinder: gaussian blur: add params for two sigmas.
Fix gaussian blur only in one direction.
Add parameters for nonsymetric blur.
Optimized convolution, made it non static.
Added some more info to grinder README.
Fixed error value from GP_LoadImage.
Make grinder parameter parsing little more robust.
Remove the compression from the 'make tar' target.
Attempt to fix the aligned pixel access.
Fix some typos in GP_GetPutPixel.gen.h.t
Changed the 19BPP to 18BPP (as I do have 18BPP HW)
Generate the *FN_PER_BPP* macros from config too.
Started to work on framebuffer driver (again).
GP_Polygon.c: remove unused variables.
GP_PNG.c: fix printf format warnings.
Fix include.
Remove unneeded header dependencies.
Make the GP_Color API match the GP_Pixel API.
Back at the size - 1 for GP_*XYWH GP_*XYW and GP_*XYH.
Fix previous commit.
This one was actually correct before.
Fixed the framebuffer tests.
Quick and dirty linux event input driver.
Fix the Set/Get/Reset Key not to touch out of the array.
Fixes for abs linux event driver.
Added input driver desctructor + typedef.
Filters: INTER -> INTERP.
Merge ssh://192.168.1.1/home/metan/Devel/gfxprim into generate
Base for framebuffer image viewer.
Merge branch 'generate' of git://repo.or.cz/gfxprim into generate
Fix merge.
Loaders: Added experimental JPEG support.
fbshow: fix timeval reinitalization.
Remove (hopefuly) last function with T prefix.
Add context offset.
Add missing linker flag.
Rewrote rotate and mirror filters.
Changed the filter API (hopefully this is final version).
Proved myself wrong, we need to read last two bytes.
More work on unifying the filter API.
The 18BPP needs an offset.
Remove unused accessor.
Update filters docs, more to come.
Allow GP_ContextSubContext() to inialized given buffer.
Remove the redundant linker flags.
Fixed the interpolation filters api.
Fixed the point filters API.
More docs for filters.
Context docs, yay!
Reset the framebuffer on ctrl+c.
Use at least _Raw get/put pixel in naive blit.
fbshow: fix the keys.
Add SIGSEGV and SIGBUS too.
Add pixel type for voipac.
Fix typo in previous commit.
Add sigabort and print image name into stderr.
Fix jpeg loader for grayscale images.
fbshow: workaround for grayscale images.
fbshow: far more fixes and functionality.
The filter could now be aborted from progress callback.
Fix the mirror filters.
fbshow: Now with two threads (needs a little cleaup).
Move the progress callback to the core.
Added GP_EINTR ret code.
Add progress callback to JPG and PNG loaders.
Basic PNG writer code.
Basic JPG writer support.
doc: Update the filter documentation.
doc: added basic documentation for JPG and PNG loaders.
core: Fix typo in color API.
doc: Fixed basic types and moved progress callback docs.
loaders: Fix PPM loader on big endian.
grinder: Use strtod instead of strtof in param loader
filters: Fix the cubic interpolation on ppc32
core: Fix typo in subcontext initalization.
core: Workaround for older and possibly broken python.
core: Fix bit endian for context functions.
TODO: updated TODO a bit
core: Changed GP_ContextConvert API, updated progs and docs.
core: Added asserts for context conversions.
filters: Experimental Floyd Steinberg.
filters: Dithering from RGB888 to any pixel, enjoy!
grinder: Add progress callback for image loading too.
doc: Added docs for Floyd Steinberg dithering.
filters: Fix some overly long lines.
build: Quick and dirty configure script
build: Get rid of old incclude/config.h.
build: fix configure for portable shells
build: Fix some linker flags, needs to be fixed properly in future.
build: having config removed in 'make clean' is wrong
build: Fix one more Makefile.
grinder: Fix script.
loaders: Add forgotten GP_ProgressCallbackDone().
grinder: Add filters to save JPG/PNG.
filters: Add per channel parameter passing support.
build: Add more generated files into .gitignore
grinder: Basic filter per channel support.
filters: Add general point (but slow) filter + fixes.
Merge ssh://repo.or.cz/srv/git/gfxprim
Add -fPIC to fix the compilation on x86_64.
filters: Fix point filter template.
filters: Complete filter param & fix tests.
text: Starting on redoing the text interface.
Merge ssh://repo.or.cz/srv/git/gfxprim
fbshow: Some more work on fbshow.
filters: Fixed and edhanced bicubic interpolation.
fbshow: Switch to bicubic integer implementation.
filters: Experimental integer aritmetic convolutions.
Merge ssh://repo.or.cz/srv/git/gfxprim
build: Fix the gen headers build and paralel build.
Merge branch 'master' into pywrap
build: sketch of build systems for pywrap.
TODO: Remove finished TODO.
build: Fix and clean up the gen.mk.
build: Back at the explicit dependencies.
filters: Add support for arithmetic filters.
filters: initial support for histograms.
build: The CFLAGS and LDFLAGS are now from configure.
build: Now jpeg or libpng could be disabled by configure.
gfx: fix build broken by previous commit
core: Added MIX_PIXELS + basic tests.
core: Add more tests for GP_MIX_PIXELS.
gfx: Fix megre.
text: First badly hacked support for freetype.
Merge ssh://repo.or.cz/srv/git/gfxprim
Text: Text core rewrite + freetype support.
Text: Fix FreeType font loading.
Text: More fixes for freetype.
Text: Fonttext can now change font size.
Text: Fix some overflows.
core: Add GP_MixPixels() function.
core: Remove now unused DEF_FFN_PER_BPP macros.
gfx: First attempt on Anti Aliased rectangle.
gfx: Working on Anti Aliased rectangles
gfx: Fix Anti Aliased Rectangle rotations
gfx: working on Anti Aliased rectangles.
gfx: Anti Aliased rectangle, fixed one more special case.
loaders: use png conversion to RGB for unknown palettes.
pylib: Propagate math python buildins to templates
core: Use table for gamma correction.
gfx: Add function for circle segment drawing.
gfx: Fix CircleSeg orientation.
loaders: Initial support for BMP images.
loaders: BMP loader, fix 24 BPP, add 1 BPP todo: palettes
loaders: Little cleanup for BMP source.
loaders: BMP 1BPP palette works now.
loaders: BMP palette formats are loaded correctly.
loaders: Add support for OS/2 header type.
core: Fix GP_Counter warnings.
build: fix configure for older pythons.
input: Fix typos in comment.
backends: Added support for overall backend API.
build: Add -ggdb by default.
backends: Fix SDL backend, seems to be working now.
demos: Port fbshow to SDL backend.
backends: Make the SDL backend thread safe.
backends: Add options for SDL fulscreen && docs.
text: Fix glyph metric computation.
input: Add rough key even ascii conversion.
input: Fix ascii mapping table.
filters: Speed up the blur filter.
demos: fbshow implement thread time counter.
demos: fbshow do low pass filter only when rat < 1
filters: blur fix includes.
demos: fbshow add more timers.
demos: fbshow add missing -lrt.
filters: Some more fixes for blur.
Merge ssh://repo.or.cz/srv/git/gfxprim
filters: Bicubic resampling fix cubic coefs.
filters: Bicubic interpolate first on x
filters: BiCubic now the coordinate mapping is right.
filters: Blur fix row/column prefill.
filters: Added Bilinear interpolation.
filters: Add fast Bilinear + low pass filter.
core: Added GP_ContextInit().
core: Fix the Blit to honor rotations, added Blit_Raw.
gfx: Partial Ellipse, fix warning.
gfx: Fix includes
core: Redo gamma correction.
core: Add fixed point operations.
core: Add GP_MixPixel().
core: MixPixel() use Gamma correction for RGB pixels.
gfx: Experimental AA line.
core: Fix typo in Mix Pixel.
gfx: LineAA fix some rounding errors, more to come.
gfx: LineAA fix typo, reorder code.
gfx: LineAA nearly complete
tests: Add LineAA to linetest.
tests: Add pause flag for linetest.
core: Remove unused code from Fixed point.
core: Cleanup Blit interface.
demos: fbshow add timer for blit measuring.
core: Much faster blit for most of the cases.
tests: blittest now tests rotated blits too.
core: blit added specialized rotated blits.
gfx: Added PutPixelAA.
demos: Add simple particle demo.
demos: Added particle interactions.
tests: Quick and dirty mixpixel test.
core: Add Mixpixel to default includes.
core: Small GP_Pixel.h cleanup.
demos: Particle demo, fix rounding error.
tests: A better mixpixel test.
gfx: Added header for Anti Aliased line, finally.
gfx: Add Anti Aliased HLine and VLine.
gfx: Fix Anti Aliased primitives coordinate system
demos: Particle demo update.
demos: grinder fix resize algs, add output format switch.
demos: grinder padd output image name with enough zeroes.
demos: fbshow add resampling option, SDL backend is default.
libs: backends add simplified generic init.
backends: Add more opts for SDL Backend Init.
demos: particle: fix typo.
backends: Add caption parameter.
backends: Fix backend Flip to respect context rotation.
backends: SDL Fix Flip operation.
backends: Fix the backend Flip().
input: Fix includes.
backends: Fix backend string parsing.
build: Small cleanup + rebuild target.
Merge branch 'master' into pywrap
build: Update pywrap build system.
demos: Fix python demos (the backend initalization has changed).
build: make clean all seems to work now, use at your own risk.
Merge branch 'master' into pywrap
build: make clean removes compiled *.pyc files too.
build: Fix dependencies in the main Makefile.
pywrap: Fix swig warnings, one was real, the rest is silenced.
demos: Simple python function plotter.
build: Use python-config (this fixes build for python 2.7 and 3.0)
input: Fix Absolute event to cursor overflow.
input: Fix a few problems with absolute input device.
input: Another round of abs event fixes.
core: Add info to the existing call.
pylib: Fixes for python 3.2, still throws some warnings.
libs: Fix library build when SDL is not present.
configure: Add check for swig.
pylib, demos: Another round of fixes for pyton 3.2
text: Add text drawing that mixes with context pixels
demos: Rename fbshow to spiv (as it outgrew it's name)
configure: Fix bashism.
text: Fix rotation for 8bpp TEXT_NOBG rendering.
pylib: Final fix for python 3.2 yay!
core: Fix subcontext rotation.
demos: Add simple ttf font demo.
configure: reformat the code to use 4 spaces.
configure: Propagage HAVE_LIBFOO into config.gen.mk too.
build: Allow for empty APP in app.mk.
build: Don't build SDL tests when SDL is not available.
build: include config.mk in pre.mk.
build: Now the libSDL less build actually works.
build: Remove possible stray .lock in build dir on make clean
pylib: Fix resource IO warning by closing the config file.
build: Add missing pre.mk into tests Makefile
build: Fix pywrap which wrongly includes config.gen.mk
build: Remove hardcoded SWIG=swig from config.mk
pywrap: Another fix for python 3.2
demos: Added blur simple python demo.
Merge ssh://repo.or.cz/srv/git/gfxprim
loaders: Starting to change image loaders API.
loaders: Convert BMP loader to use errno for error reporting.
loaders: Convert PNG loader to use errno for error reporting.
loaders: Convert JPG loader to use errno for error reporting.
spiv: Make use of the errno from GP_LoadImage().
loaders: Basic GIF reading support using giflib.
Merge ssh://repo.or.cz/srv/git/gfxprim
loaders: Fix two typos in GIF loader.
pywrap: Swig 1.3.31 doesn't support -Wextra, remove it.
config: Add BGR888 pixel type, that's needed for interfacing other libraries.
pywrap: Add simple pygtk + gfxprim example.
Merge ssh://repo.or.cz/srv/git/gfxprim
core: Add clipped blit.
core: Make the Clipped blit more versatile.
core: Fix stupid bug in special case blit.
backends: Initial Xlib backend, not yet fully working.
backends: Improve X11 backend.
doc: Initial docs for backends.
doc: Update loaders docs.
doc: Updated general gfxprim description.
doc: Update basic types docs.
doc: Fix a few typos in loaders.
doc: Fix a few typos in basic types.
doc: Update context docs.
doc: A few fixes.
examples: Add a very simple examples.
doc: Add examples docs.
examples: Add very simple loaders python example.
docs: Add more examples.
doc: More small doc fixes.
doc: Add more info to general docs.
doc: Fix make clean.
doc: Add gfxprim pages into git.
build: Make configure genereate gfxprim-config script.
build: The backends module needs to add -lGP_backends.
build: Add core linker flags to --libs.
Merge ssh://repo.or.cz/srv/git/gfxprim
backends: X11 add support for pointer events.
spiv: A few fixes.
backends: Add support for resize and caption on-the-fly.
spiv: Make use of new backend fucntions.
input: Prepare for SYS_RESIZE and SYS_QUIT events.
input, backends: Add support for SYS_RESIZE and SYS_QUIT.
debug: Print debug level too.
spiv: Make use of the SYS_RESIZE and SYS_QUIT events.
spiv: Fix rounding error when centering image.
core: Add GP_ContextResize().
backends: Do not reset rotation flags on resize.
backends: X11 ignore expose events until Update or Flip is called.
spiv: Show progress when window was resized.
backends: X11 fix off-by-one.
build: Make configure die verbosely on missing compilers.
buid: Use list rather than dict in list of modules.
build: gfxprim-config: print error on invalid option.
input: Do not include internal headers in GP_Input.h
Remove finished tasks from TODO.
Remove unused file.
examples: Move simple c examples into c_simple directory.
examples: Add loaders example utilizing progress callback.
doc: Add new example, fix paths.
examples: Add runtest.sh script.
loaders: Add GP_ImageSave() function.
loaders: GP_ImageLoad(): Set ENOSYS on unknowns image format.
loaders: Change parameters of GP_SaveXXX() functions.
doc: Update loaders docs.
loaders: Add debug message when saving JPG/PNG image.
filters: Starting to change filter API.
examples: Add filter symmetry C example.
doc: Add symmetry example to examples.
filters: Finish rotate filters API change.
pywrap: filters: Mark allocating functions.
examples: Add pyton filter rotate example.
doc: Add new example.
pywrap: backends: Update swig bindings.
pywrap: Add pywrap for input module.
pywrap: Update _extend_backend.py.
pywrap: Fix the loaders extend context after API change.
examples: python: Fix image saving usage.
examples: Add simple gfx C example.
examples: Fix loaders return value.
doc: Add gfx example.
backend, input: Add optional support for console keys.
tests: Fix build.
backends: A few fixes for linux fb.
backends: fb: restore KB mode on exit.
backends: GP_BackendInit() Add default size for X11.
doc: Fix typo.
spiv: A few fixes for spiv.
doc: Used spell checker to fix typos.
backends: X11: More error checking and pixel matching.
backends: Add virtual emulation backend for testing.
core: Add GP_PixelTypeByName().
spiv: Add option to use pixel type emulation for backend.
filters: Initial version of Hilbert Peano Dithering.
filters: Templatized Hilbert Peano Dithering.
filters: Hilbert-Peano fix curve size calculation.
spiv: Add option to turn on dithering.
Merge ssh://repo.or.cz/srv/git/gfxprim
backends: Add virtual backend into GP_Backends.h.
tests: Fix loaders tests compilation.
examples: Add virtual backend example.
core: Write better 1BPP WritePixels function.
examples: More work on virtual backend example.
config: Add xRGB2222 into config file.
core: Fix rest of the G2_LE and G4_LE WritePixels.
core: Fix color conversion function parameters.
backends: Move the resize w, h check into general code.
build: Remove the useless -dPIC compilation switch.
X11: Remove temporarily XResizeWindow
demos: Change particle demo default backend to X11.
X11: Add option to run X11 backend in root window.
backends: Simplify the backend fd interface.
filters: Cleanup dithering filters API.
doc: Update dithering filter docs.
pywrap: Update dithering filter wrapping.
filters: Update Rotate filters API.
doc: Update Rotate filters docs.
pywrap: Set GP_FilterSymmetryNames array to immutable.
py_simple: Fix python example after the API update.
backends: Print error when initalizing not-compiled-in backend.
demos: py_simple: Fix blur example.
core: Add bit swap helpers.
loaders: Add support for sawing Grayscale PNGs.
examples: Add simple python dithering example
spiv: Move the resampling workaround to a correct place.
loaders: Set bit endian flag on grayscale PNG load.
loaders: Use png_set_packswap() (to reduce size of code).
spiv: Resize backend to fit image on pressing 1.
loaders: Create generic metadata storage.
loaders: Add forgotten libpng cleanup for image loader.
loaders: JPG: move the fclose(f) where it belongs.
loaders: PNG: add experimental support for metadata.
examples: Add meta data example.
loaders: PNG More work on metadata.
loaders: Add meta-data clear method and double type.
demos: Add forgotten meta_data example.
demos: Edhance png meta-data dumper example.
loaders: Make use of double metadata type.
loaders: Start with meta-data support for JPEG.
filters: Clamp Floyd-Steinberg result pixels.
Merge ssh://repo.or.cz/srv/git/gfxprim
spiv: Rewrite the backend polling loop.
loaders: Added Exif to MetaData parser.
loaders: A few Meta Data fixes.
loaders: MetaData: edhance printing rational numbers.
loaders: More work on Exif loader, mostly finisned.
loaders: Add generic function to load Meta Data.
core: Edhance and rewrite debug messages.
loaders: Make use of edhanced debug messages.
doc: Update backend docs.
filters: Change arithmetics filters API.
doc: Update filters docs.
pywrap: Update list of newobject filters.
doc: Update common filter API example.
filters: Cleanup GP_FilterParams API a little.
doc: Add GP_FilterParam into filters.
pywrap: Update GP_FilterParam pywrap.
doc: Add meta-data examples.
backends: X11, Add CREATE_ROOT mode.
pywrap: Add make dependency for common.i.
pywrap: Fix error reporting.
filters: Add noise filter.
spiv: Add image cache.
spiv: Cache resized images too, not optimal yet though.
spiv: Fix low pass filtering, edhance cache.
spiv: image_cache: Count image size more properly.
spiv: image_cache: Add elevate parameter to get function.
spiv: image_cache: Add elevator count, drop cache on d.
spiv: Temporarily fix the bussy loop.
Merge ssh://repo.or.cz/srv/git/gfxprim
spiv: Split the caches for resized and original images.
backends: Add Wait method.
spiv: PgUp and PgDown to scrolls by 10 images.
spiv: Fix progress callback.
spiv: Make the original image cache larger.
Merge ssh://repo.or.cz/srv/git/gfxprim
core: Remove GP_ContextDump().
core: Add GP_ContextInfoPrint().
core: Slight cleanup in GP_Context.
build: Add gfxprim-config into the .gitignore
core: Make sure Context functions set errno on failure.
loaders: Add TmpFile interface.
core, filters: Add initial version of gamma correction.
git: Add more gitignore files.
spiv: Make image cache functions No-Op when cache pointer is NULL.
filters: Add generated Nearest Neighbour filter.
spiv: Make use of the Nearest Neighbour resampling.
filters: resize: Add GP_InterpolationTypeName().
spiv: A few fixes and features.
filters: resize NN, fix off-by-one in coordinates mapping.
filters: resize: Fix off-by-one for rest of the algorithms.
filters: resize NN: Remove forgotten debug print.
filters: cubic resampling: Cache coordinates mapping.
filters: Add fixed point, table based, cubic curve aproximation.
spiv: Stop loader thread before resizing backend buffer.
spiv: Free caches before exit.
filters: Add generated cubic resampling (with gamma) yay!
Merge ssh://repo.or.cz/srv/git/gfxprim
doc: Add gamma docs + spellchecks.
examples: Add simple showimage example.
filters: Make the linear covolutions general.
filters: Fix typo in VH Convolution.
filters: Experimental Edge detection code.
filters: Add Laplace filter and Laplace based Edge Sharpening.
pywrap: filters: Fix warning.
grabbers: Introduce grabbers library and V4L2 grabber.
core: Fix context include.
build: Add -D_FORTIFY_SOURCE=2 into default CFLAGS.
grabbers: V4L2 fix typo in YUV to RGB conversion.
filters: Added GP_FilterKernelPrint() function.
filters: Fix the laplace filter (it's not separable, gah)
doc: Add Laplace based filter docs.
doc: filters.txt spellchecks.
doc: index.html spellchecks.
doc: filters.txt, context.txt: small fixes and clarifications.
filters: Cleanup and preparation for changes.
doc: Update filters.txt doc.
filters: Move gaussian blur into separate file.
core, filters: Add clamping macros.
filters: Cubic Resampling, simplify the code.
doc: Update resapling docs.
filters: GP_Linear.c: Further speedups.
filters: GP_Linear.h remove the forgotten blur functions.
demos: spiv: Update cpu counter for multithread filters.
core: Add simple temporary buffer allocator.
filters: Linear Convolution make use of the TempAllocator.
filters: Add initial version of multithreaded linear convolution.
doc: Update backend docs.
doc: Add grabbers docs + spellcheck in API.
doc: More spellchecks + v4l2 examples.
doc: Generate page per topic docs too.
filters: Simplify multithreaded filters.
filters,core: Update in the threads interface.
doc: A few typo corrections.
filters: Fix convolution return value.
filters: Fix Gaussian Blur API.
examples: Minor fixes in convolution.c
doc: Update gaussian filter docs.
core: Add GP_Threads.h into the GP_Core.h.
demos: blur.py a minor fix.
pywrap: Update filters.i.
doc: Add docs for environment variables.
doc: Add docs for debug message layer.
doc: A few fixes and link.
filters: Linear Convolution, another 10% speedup.
filters: Linear Convolution: Fix progress computation.
filters: Add initial median filter implementation.
pywrap: Update filter.i for median filter.
demos: Add median filter to grinder.
filters: Median make use of GP_TempAlloc.
filters: Rewrite Median filter, prepare for speedup.
filters: Median: implemented lazy median computation
filters: Median: clean up allocated memory correctly.
doc: Add median filter docs.
filters: Median fix the trigger value.
doc: Fix median filter docs.
filters: Add simple weighted median filter.
text: Fix FreeType less build.
input: Fix Xlib less build.
demos: Fix demos LDLIBS and LDFLAGS.
build: Remove unused -ldl.
filtes: Add Sigma Mean filter.
demos: grinder: Add more filters.
pywrap: Update filters pywrap.i
demos: grinder: Fix the wrong invalid output error.
input: Map mouse wheel in X11 and SDL.
demos: spiv: make use of the mouse wheel.
include: Fix GP_Backend.h vs GP_Backends.h include.
demos: Fix the backend includes.
backends: SDL: simplify init code.
backends: SDL: Enable key repeat by default.
backends: SDL: Make use of GP_WARN().
demos: Port shapetest from SDL to GFXprim backends.
demos: Port sierpinsky from SDL to GFXprim backends.
demos: rename sierpinsky to koch (the name was wrong to begin with).
loaders: GIF: Add support for interlaced images.
core: debug: Add debug level env variable.
doc: Add debug env variable docs.
demos: grinder: Get rid of GP_RetCode.
demos: c_simple: Ported input test from SDL.
filters: Add gaussian additive noise filter.
tests: Remove obsolete font test.
core,loaders: Continue on removing the GP_RetCode.
loaders: Now GP_RetCode free + fixes.
pywrap: Add error checks for PXM loaders.
core, gfx: Move AngleUtils to gfx.
tests: Remove another obsolete tests.
tests: Port fileview to backends.
tests: Remove SDL based showimage.
tests: Mockup new test interface/driver.
tests: More work on the test framework.
tests: Add first simple html export.
tests: Edhance the html report.
build: Reorder object files and LDLIBS.
tests: Catch SIGABRT too.
doc: Small fixes in grabbers docs.
tests: Add allocation with barriers.
tests: Simplify malloc tracing logick.
tests: Add JSON output.
tests: Silence the job output.
tests: Added example pyton JSON log parser.
tests: Add code to fail fclose() and fopen() libcalls.
tests: Add global test main.
tests: Add test framework build as default target.
tests: Fix / in test name bug && constant rename.
tests: Add sample loaders tests.
tests: Run loaders testsuite using build/* libraries.
loaders: JPG: Fix memleak when saving JPEG image.
doc: Fix typos.
tests: Further edhance test job output.
tests: loaders: Add more tests.
tests: Add max stats to malloc check.
tests: loaders: Add missing dependency on libtst.a
tests: loaders: Add linker path to GFXprim libs.
libs: Several small fixes.
loaders: Simplify the image format detection code.
tests: Add common image loader tests.
loaders: Small fixes in errno handling code.
tests: loaders: Simplify tests code.
loaders: png: Fix ENOSYS stubs.
tests: framework: Introduce SKIPPED test result.
loaders: jpg: Fix ENOSYS stubs.
tests: loaders: Skip tests on ENOSYS.
loaders: Fix typo that misidentified BMP as GIF.
tests: loaders: Add tests for EACCES + cleanup.
loaders: gif: Fix errno handling.
tests: loaders: Add tests for EIO.
loaders: bmp: Fix errno on invalid signature.
tests: framework: slight change in html output.
doc: Cleaned up loaders docs, more to come.
tests: framework: Fix typos & warnings.
tests: framework: Add resource path.
tests: framework: Add Floating Point Exception error.
tests: framework: Count correctly passed and skipped.
tests: framework: Add benchmark logic.
tests: framework: Fix test job log output.
tests: Sketch gfx benchmarks.
tests: framework: A little cleanup.
tests: framework: Fix stupid typo.
tests: core: Start core tests using new framework.
tests: loaders: Add generator + bmp images.
tests: loaders: Make use of some bmp images.
core: Remove unused GP_Counter.
tests: Remove now unused files.
tests: Move common Makefile constants into one place.
tests: core: Add simple context test.
tests: Remove more unused files.
tests: Remove trianglefps.
input: Make use of GP_WARN().
demos: c_simple: Port linetest to backends.
core+all: Finally GP_RetCode free.
tests: core: Created GetPutPixel test.
tests: framework: Fix benchmark JSON output.
tests: framework: Add UNTESTED test status.
tests: core: More cases for GetPutPixel.
tests: loaders: More JPEG and PNG tests.
tests, demos: Port randomshapetest to backends.
tests: Remove pixeltests.
tests: gfx: Basic tests for a circle.
gfx: algo: Fix negative and zero radius for Circle
tests: gfx: Move common code to file.
tests: gfx: Add tests for CircleSeg.
gfx: algo: Fix negative and zero radius for CircleSeg.
tests: gfx: Add very basic tests for Line.
tests, demos: Ported fonttest to backends.
tests: Remove symboltests.
tests, filters: Convolution tests, not yet working.
tests: framework: Copy only content of resource dir.
filters: Add header + minor cleanup.
tests: framework: Change the test driver output.
tests: framework: Split tst_job_wait().
tests: framework: Avoid division by zero.
filters: convolution: Fix segfault on unsupported pixel types.
tests: filters: convolution: Make use of ENOSYS.
tests: framework: Propagate tst_warn() from child.
tests: Fixup messages API and return values.
tests: framework: Make output silent by default.
loaders: Add PSP Image loader.
tests: Add forgotten filters target to Makefile.
loaders: Add initial support for loader registration.
loaders: Add PSP signature matching.
loaders: More signature matching, yay!
loaders: Add forgotten header, ouch.
loaders: More work on loaders, BMP signature.
loaders: Fix PBM and PGM loading API.
doc: Fix Makefile, update .gitignore
loaders: Add the rest of loaders to GP_Loader list
examples: Add loader registration example.
loaders: Now we aren't fooled by wrong filename extension.
loaders: Add GP_MatchImage().
doc: Update loaders documentation.
doc: Library core functions and macros docs.
doc: Remove the all-in-one page API docs.
doc: Add more examples and links.
doc: Move ProgressCallback to core, add example.
tests: SDL: Remove aatest.c.
backends: Add GP_BackendUpdateXYWH().
tests: Port blittest to backends.
core: Remove unused include endian.h
tests: framework: Include correct header for malloc
filters: Silence wrongly generated warnings.
loaders: Provide GP_MatchXXX ENOSYS stubs.
tests: Remove forgotten -lSDL
tests: framework: Silence stderr when lscpu is not found.
gfx: Fix "no newline at the end of file" warnings.
loaders: Avoid further work when loader issued ENOSYS.
tests: framework: Create JSON log to HTML converter.
tests: core: Add SubContext assertions.
tests: Port textaligntest to backends.
tests: Finally get rid of obsolete SDL tests.
gfx: Fix 'no newline at the end of the file'.
Add README.
gfx: Fix GP_Polygon.c compilation.
Fix "X Window Close Button"
Merge 192.168.1.100:Devel/gfxprim
libs,backends: Finally remove the obsolete SDL library.
doc: Add GP_ContextFromSurface() docs and example.
backends: Add CREATE_ROOT to backend init docs.
spiv: Add -h help option, yay!
backends: x11: Add unfinished SHM support.
gfx: Add GP_FillPolygon() and GP_Polygon().
tests: Add basic polygon tests, more to come.
tests: gfx: Fix typos in common code.
test: gfx: Add more polygon test cases.
tests: framework: Change tst interface slightly.
tests: gfx: Polygon.c: Make use of new tst interface.
tst: gfx: common.c: Fix another typo.
tests: gfx: common.c: Edhance the error output.
tests: gfx: Line.c: Cleanup and edhance tests.
tests: Finally remove the rest of old tests.
tests: Remove now unused test collection code.
build: Remove check for LIBNAME from gen.mk
tests: framework: simplify tst_log interface.
tests: gfx: Circle.c: Edhance and simplify tests.
tests: gfx: Add FillCircle test.
Merge ssh://repo.or.cz/srv/git/gfxprim
core: GP_Common.h: Remove the C++ part.
tests: gfx: Polygon.c: More testcases.
gfx: Fix one special case for GP_Line().
gfx: Fix second special case of GP_Line().
gfx: GP_Line() the first special case is not needed now.
tests: gfx: GP_Line: More testcases.
tests: gfx: Add Ellipse.c testsuite.
build: Remove unused tests.mk file.
libs: backends: Fix typo in GP_BackendInit.c
core: GP_Debug.c: Fix code ordering.
backends: GP_Backend.c: Add WARNINGS into UpdateRect()
backends: GP_X11.c: Finish SHM & Fix Race.
build: Add crude test for unexpectedly exported symbols.
tests: Remove last piece of old testing framework.
libs: Fix visibility of some symbols.
build: Edhance exported symbols detection.
libs: gfx: Hide private symbols.
build: Edhance symbol detection script.
backends: GP_X11.c: Make internal functions static.
loaders: GP_PNG.c: Fix crash on palette with alpha
pywrap: Comment out the PyBuffer_FromMemory.
pywrap: loaders.i: Add a few %newobject directives.
tests: loaders: Add regression tests for PNG loader.
backends: Add GP_BackendResizeAck().
doc: input: Add input events docs + code cleanup.
backends: x11: Add fullscreen and disable SHM opts
doc: Add basic docs for templating engine.
doc: input: Clarify wording in few cases.
doc: input: further fixes.
doc: pixels: Add basic docs for pixel.
doc: backends: Update X11 API.
build: configure: The -lXext should be in LDFLAGS.
demos: spiv: Move image listing code into separate file.
doc: Add clear bitendian definition.
spiv: Fix debug message in image cache.
Merge ssh://repo.or.cz/srv/git/gfxprim
doc: Fix previous changes in Makefile.
spiv: Add directory traversal code.
doc: Makefile: add check for source-highlight.
libs: backends: GP_X11: Add XFlush() after BackendUdate().
demos: spiv: Fix crash on empty dir, edhance err message.
Merge ssh://repo.or.cz/srv/git/gfxprim
demos: spiv: Add help screen.
core: WritePixel: Small cleanup first.
gfx: VLine: Fix the VLine implementation.
core: GP_Common: Make local functions static.
build: syms: Update lists of exported symbols.
Merge ssh://repo.or.cz/srv/git/gfxprim
tests: framework: Use more portable posix_memalign.
pywrap: loaders: Ignore GP_Loader structure.
all: Fix some warnings.
Remove long obsolete TODO file.
build: Fix dependencies for library build.
build: pywrap: Fix the dependencies.
build: Fix the parallel build.
core: GP_Common: Reimplement the abort message.
doc: gen: Add needs_bit_endian() function.
doc: gen: Add quick jinja2 help.
core: Prepare for correct WritePixels implementation.
doc: Add word about coordinate system.
demos: c_simple: Update backend example.
doc: Add more text formatting.
loaders: Add function to match loader by filename.
spiv: Filter out non image files in dir traversal.
Merge ssh://repo.or.cz/srv/git/gfxprim
spiv: Add different zoom modes.
loaders: GP_Load: Add check for directory.
loaders: GP_Loader: Fix previous commit.
gfx: HLine: Generate HLine per BPP header too.
tests: gfx: Add very basic HLine testsuite.
gfx: HLine: Split HLine && cleanup.
Merge gfxprim
core: GP_ContextEqual: Minor coding style fix.
doc: Edhance the html output.
doc: Add coding style document.
doc: backends, coding_style: Typos and fixes.
doc: gen: Fix typo and scale down the images.
doc: Customize the html header and footer.
doc: Add favicon do the asciidoc template.
doc: Remove header from examples.
core: Gamma: Prepare for sRGB correction.
core: Comment out broken blit optimalization.
Merge ssh://repo.or.cz/srv/git/gfxprim
doc: context: Clarify the context->pixels description.
doc: context: Fix subcontext desc, add link to dithering.
build: Update lists of exported symbols.
build: Fix library filenames and symlinks.
build: Fix the install script.
build: Fix typo in lib.mk.
build: install spiv demo by default.
build: Remove now unused build knob.
build: Add forgotten libGP.* dependency.
loaders: png: Load images with alpha channel too.
build: Fix another bug introduced by yesterday.
backends: X11: Fix stub function.
build: Disable implicit rules in build/ dir.
doc: Edhance coordinate system description.
doc: More work on the Core docs.
doc: Add simple floating menu.
doc: Fix ascidoc css style.
doc: Finish rewrite of general information page.
loaders: Start TIFF loader, currently broken.
pywrap: Remove forgotten hardcoded -lSDL.
tests: gfx: Fix HLineXYW expectations.
test: gfx: Add simple VLine testsuite.
backends: X11: Flush the connection after set_attributes().
doc; backends: specify GP_BackendPoll more precisely.
loaders: TIFF: use static for local function.
build: Add TIFF functions to exported symbols.
filters: Mirror & Rotate: use static for local functions.
demos: input_example: Show relative rx and ry too.
build: configure: Add pthread flags (fixes builds)
Merge ssh://192.168.1.100/home/metan/Devel/gfxprim
input: X11: Ignore out-of-window relative events.
gfx: Add tests and fix Anti Aliased PutPixel/HLine.
gfx: Fix typos in previous commit.
demos: Add GP_HLineAA demo.
tests: framework: Add log output dir option.
tests: framework: New python runtests script.
filters: Add missing GPL headers.
backends: SDL: Add resize event notification.
demos: Start bogoman.
spiv: image_cache: Store at least one image.
spiv: A few fixes for -zf (fixed zoom mode).
input: X11: Fill the gaps in keyboard mapping.
doc: input: Add keyboard layout description.
input: Map mute + volume multimedia keys.
input: Create EventQeueue.
core: Add GP_ARRAY_SIZE() to GP_Common.c
input: X11: Load some KeyCodes dynamically.
input: X11: Fix typo (left ctrl vs. right ctrl)
build: Update list of exported syms.
backends: X11: Fix build without MIT SHM.
backends: Another step towards per backend event queue.
backends,input: Finish the per backend queue.
doc: backends,input: Update docs.
build: Update input exported symbols.
backends: Fix virtual backend event propagation.
text: Fix y_mul in text rendering.
text: Add Tiny Mono font.
text: Two small fixes for TinyMono Font.
build: Update text exported syms.
build: Fix check_symbols.sh script.
build: Add forgotten symbol to Input symbols.
text: Add GP_FontTiny (proportional variant).
tests: Fix wrong path in runtests.py script.
build: Add check for python-config.
doc: Fix asciidoc.css
doc: Edhance text API docs.
doc: text: Add note about width and height.
libs: backends: Fixes.
core: GP_Common.h: Add GP_CONTAINER_OF()
libs: backends: X11 backend code refactoring.
backends: X11: Fix double close on exit.
examples: add X11 multiple windows example.
libs: core: debug: API for custom message handler.
libs: backends: GP_X11: Small cleanup.
doc: Update debug layer docs.
core: context: Fix GP_PIXEL_ADDR() macro.
tests: filters: Add basic test for MirrorH filter.
filters: FilterMirrorH: Small fixes, more to come.
doc: filters: Add link to progress callback description.
tests: filters: Add dump API Coverage generator.
tests: filters: Add a few initializers to APICoverage.
tests: filters: Fix coverage filter params.
libs: filters: Don't abort on unimplemented filter
core: Convert_Scale: Add support for > 8bits.
loaders: PSP: Fix 'set but not used' warnings.
pylib:templates,gfxprim_config: Add 16bit Grayscale.
pywrap:core: Make members of GP_DebugMsg immutable.
filters: Rotate: Remove unused variable.
doc: Makefile: Add check for dvipng.
filters: symmetry: Change _Alloc to Alloc.
include: filters: Unify ifdefs fix some whitespaces.
demos: c_simple: Add gaussian additive noise example.
doc: filters: Add gaussian noise documentation.
build: configure: Pick config values from env variables.
demos: py_simple: Fix loaders_example.py
pywrap: Fix filters __init__.py.
demos: py_simple: Fix rotate90.py
pywrap: filters: Add non-alloc filter variants too.
demos: py_simple: Fix blur.py
demos: py_simple: Fix dither.py
pywrap: backends: Hack it together.
pywrap: loaders: Remove unused _extend_context.py
demos: py_simple: Fix *plots_AA.py
demos: py_simple: New demo showimage.py.
pywrap: input: Fix & constructor for GP_Event.
pywrap: backends: Hacked support for input events.
demos: py_simple: showimage.py: Add input event hanlding.
pywrap: backends: The Wait and Poll returns events directly.
loaders: GP_Loader: Fix signature warning.
pywrap: core: Implement progress callback.
pylib: common.i: Simplify error wrappers.
pywrap: common.i: Change the exception to OSError.
doc: pywrap: Add brief core wrap description.
doc: pywrap: More python docs.
doc: pywrap: Start gfx documentation.
docs,demos: Add python gfx demo, continue docs.
doc: pywrap: Finish gfx docs.
doc: pywrap: Starts python loaders docs.
doc: Update X11 backend docs.
backeds: Make use of GP_FATAL().
doc: Add compilation how to.
grabbers: v4l2: Fix segfault on unsupported protocol.
backends: Add WaitEvent and PollEvent
pywrap: backends: Make use of WaitEvent and PollEvent.
demos:c_simple: Make use of BackendWaitEvent().
pywrap: backends: Fix typo.
pywrap: Add grabbers bindings + example.
backends: X11: Declare internal functions static.
build: Update list of exported symbols.
demos: py_simple: Add grabbers example.
spiv: Map keypad + and - to zoom.
libs: backends: Fix warning message.
doc: Update backend docs.
pywrap: backends: Add rest of the function to backend class.
pywrap: Fix text module wrappers.
demos: py_simple: Add X11 multiple windows example.
lib: text: Assert that style->font is not NULL.
pywrap: text: Add wrappers for GP_TextStyle.
demos: py_simple: Add font style example.
libs: backends: Set errno to EINVAL if backend params are wrong.
backends: SDL: Fix resize.
demos: py_simple: Add BackendInit() example.
doc: Start python backends docs.
pywrap: backends: Hack typemap for the BackendInit(..., FILE*)
demos: py_simple: Pass the stderr as the last parameter.
doc: Update python backend docs.
pywrap: backends: Fix the typemap BackendInit() hack.
backends: BackendInit: Don't set errno on all failures.
backends: FB: Remove invalid close()
doc: More work on the python backends docs.
tests: loaders: Add basic tests for SavePNG().
loaders: PNG: Fix errno propagation.
loaders: Add ByteUtils.
loaders: BMP: Experimental BMP writer for RGB888.
libs: loaders: GP_Load() Fix.
doc: general: Update supported image formats.
Merge ssh://192.168.1.100/home/metan/Devel/gfxprim
build: Update list of loaders symbols.
loaders: Finish ByteUtils.
loaders: Change ByteUtils format string.
loaders: BMP: Adapt to the ByteUtils.
loaders: BMP: Add check for non-zero width and height.
core: ContextAlloc: Add check for zero width/height + test.
tests: loaders_suite: Fixes.
loaders: LoadImage: Fixes.
core: WritePixel: Fix 24 BPP with count == 0.
gfx: Ellipse: Fix special case for a == 0 || b == 0
core: tests: Test for invalid context pixel type.
pywrap: backends: Change UpdateRect API
doc: Slight update in the python backend docs.
demos: py_simple: Add demo for alpha channel blit.
core: Blit: Implement blit with alpha channel.
core: ContextConvert: Fill the allocated buffer.
core: Pixel: Add GP_PixelHasAlpha().
doc: compilation: Add instructions for debian.
core: Add GP_PixelHasFlags() + tests.
spiv: Exit if no images were passed.
filters: ResizeLinear: Templatize linear downsampling.
all: Add mising GPL headers.
build: Update list of exported symbols.
filters: GP_ResizeLinearLF: Templatize.
filters: GP_ResizeLinearLF: Fix.
demos: py_simple: Fixes.
pywrap: core: CallbackProxy: Reword error message.
build: pywrap.mk: Two fixes.
demos: py_simple: Remove broken plot.py.
build: First attempt for 'make install' for python bindigs.
pywrap: loaders: Add SaveXXX functions to submodule.
demos: py_simple: Make use of loaders submodule.
doc: update python loaders docs.
build: Revert the python suffix back to .so
filters: Write correct template for rotate by 180.
gfx: Remove unused and broken GP_Symbol().
doc: Update and reformat implemented filters tables
pywrap: gfx: Remove references to removed Symbol()
build: configure: Fix python version detection bug.
tests: Hack res2html.sh
spiv: image_list: Fix order on img_prev()
tests: core: WritePixel Testsuite
tests: Add good old runtest.sh to run isolated tests.
spiv: Map arrow keys to offset by default.
core: WritePixel: Fix 24BPP write pixels.
tests: WritePixel add malloc allocated buffers.
tests: core: Unify test names.
tests: loaders: PNG: Return SKIPPED on ENOSYS.
spiv: image_list: Add more functionality.
test: loaders: Add Write cases for BMP.
loaders: BMP: Fix leak.
doc: Update compilation & installation docs.
demos: c_simple: Fix segfault when x11 not compiled in
backends,input: Move Input drivers to backends.
build: Fix linker ordering and build.
backends: X11: Fix XImage pixel matching.
backends: X11: Check for supported visual class.
demos: spiv: Handle transparent images better.
gfxprim_config.py: Remove a few odd pixel types.
install: Hack /usr/lib vs /usr/lib64 detection.
backends: X11: Filter out MapNotify and MapReparent
Revert "core: Convert_Scale: Add support for > 8bits."
tests: Add API coverage for GFX.
core: WritePixel: Print Unimplemented on 18BPP
core,gfx: Fix HLine & WritePixels.
core: Add default HLine implementation.
core: Add header GP_Version.h
GFXprim 1.0.0-rc0
Jiri BlueBear Dluhos (29):
First implementation of partial ellipse (plus some angle-related utils).
Fixed (hopefully) a few small wording issues.
A few more wording clarifications and typo fixes.
Added cyan and magenta predefined colors (in order to have a complete CMYK)
Added new color values to the docs.
Added the "doc" target to the main Makefile.
Finished initial implementation of generic polygon.
Merge branch 'master' of git://repo.or.cz/gfxprim
Fixed (maybe) off-by-half error in polygon vertices.
Merge branch 'master' of ssh://repo.or.cz/srv/git/gfxprim
Made GP_Common.h compilable under C++
Fixed a simple typo.
Suspicion of odd # of intersections; added assert.
Added a special case for circle with r == 0.
Merge branch 'master' of ssh://repo.or.cz/srv/git/gfxprim
Templatized GP_FillCircle.
Fixed an assertion crash in FillPolygon.
Slightly better handling of joints in GP_FillPolygon().
Merge branch 'master' of ssh://repo.or.cz/srv/git/gfxprim
Rewrote FillPolygon() according to books. Still not correct though.
Merge branch 'master' of ssh://repo.or.cz/srv/git/gfxprim
Get rid of one qsort() in FillPolygon().
Finally understood how to handle horizontal lines.
Templatized GP_Line().
Use clipped putpixel in line drawing for now (slower but does not crash).
Templatized HLine, modernized WritePixel slightly.
First stab at analytic line clipping.
Merge branch 'master' of ssh://repo.or.cz/srv/git/gfxprim
'make doc' checks for necessary tools.
Jiri Bluebear Dluhos (46):
Initial revision.
Rewritten GP_Triangle() to yield exactly the same border lines
Added an experimental transit point hack to GP_FillTriangle().
Fixed off-by-one bug in FillRect(), merged circletest and triangletest into shapetest, reactivated pixel-patching code in ellipse (still not correct though).
Merged random drawing tests into randomshapetest.c.
Cleaned up tests, removed obsoletes.
GP_Clear() no more resets clipping rectangle; fixed off-by-one bug in GP_FillRect().
(Hopefully) finally fixed ellipse drawing.
Stabilized line drawing by ensuring a fixed direction.
Fixed a stupid typo that caused a busy loop in GP_VLine().
Added a set of basic colors.
Cleaned up rect.c.
Initial work on bitmap font drawing.
Added a font test; more characters added to the default font.
Capital letters added to the default font.
More characters added to the default font.
Templatized setpixel.c.
Templatized GP_Line() in line.c.
Added linefps (a trivial FPS counting test for lines).
Rewritten GP_Line() to check surface bit depth only once; this gives
Separated templates to special directory.
Renamed 'templates' to 'generic' for clarity.
Templatized GP_HLine(); separated GP_clip_rect.h.
Templatized GP_VLine(). Added GP_GET_CLIP_RECT.
Templatized GP_Triangle(); added FPS test.
Templatized GP_Triangle() and GP_FillTriangle(), fixed missing SETPIXEL
Started work on backend abstraction.
Templatized GP_Circle().
Improved speed of 32-bit HLine (about 15%).
Merge git://repo.or.cz/gfxprim
Improved speed of HLine() for 16 bpp (about 40%).
Fixed a stupid off-by-one bug in HLine().
Improved speed of drawing of 24-bit HLine().
Fixed off-by-one bugs in 24-bpp HLine().
Fixed templatization of setpixel.
Added GP_COLOR_TYPE.
Fixed clipping rectangle in getpixel.c.
Clarified template comments.
Rewritten filled triangles (about 30% speed gain).
Simplified filled triangles (about 5% speedup).
Start of work on target separation.
More code moved to targets/sdl.
Reworked fonts, added Y scaling (API change, sorry).
Removed SDL macro from GP_writepixel.h.
Cleaned up some frontend/backend macros.
Subdivided the library into backend and common part.
Tereza Klimosova (4):
Added GP_WritePixels4bpp
Merge branch 'master' of git://repo.or.cz/gfxprim
Added basics of bit endiannes.
GP_WritePixels8bpp replaced with memset.
Tomas Gavenciak (261):
New code-generating framework for GP_Pixel
Merge branch 'master' into generate
Clean up the generating code
Working generator of GP_Pixel.gen.[ch]
Added .gitignore
Merge branch 'master' of git://repo.or.cz/gfxprim into generate
Fix a bug in GP_Color
Work on generated code, tidying up
Refactor gen/, add 1st blitting function, README
Remove obsolete test.py
Add likely/unlikely, refactor small files
Merge branch 'master' into generate
Add the .so lib to gitignore
Add set/get bits macros to GP_Common.h
Introduce Check tests
Add set/get bits macros to GP_Common.h
Somewhat finalized testing layout
Fix common.test.c values
Merge branch 'tests'
Adjustments for bit_endian
Update README
Minor changes in make_*
Add library to .gitignore (correctly)
Added auto-generation of testcases and suites
Added simple counters (+tests)
Merge branch 'master' into generate
Merge branch 'bitendian' of git://repo.or.cz/gfxprim into generate
Remove code to be replaced
Fixed, extended and tested GP_Counter
Unified ASSERT/ABORT/CHECK code, printf-like behaviour
Merge branch 'master' of git://repo.or.cz/gfxprim
Added looping, exit and signal handling to test parameters
Tests for GP_ASSERT/CHECK/ABORT, minor fix (ambiguous else)
Merge branch 'master' of git://repo.or.cz/gfxprim
Added .gitignore
Merge branch 'master' into generate
Fix type warning
Adapt gen/ for bit-endianness
Minor extension to testing
Stop %'s in GP_ASSERT() from breaking printf format
Merge branch 'master' of git://repo.or.cz/gfxprim
Merge branch 'master' of git://repo.or.cz/gfxprim
Fix up tests (issue with aliasing remains)
Cleanup and minor edits of core code
Fix transform bugs, add docs to GP_Transform.h
Tweak PixelType definitons
Fix GP_Blit generation
Add typeof definition (C99)
Merge branch 'master' into generate
Post-merge moves
Merge branch 'master' of git://repo.or.cz/gfxprim
Merge branch 'master' into generate
Restructure generating system for new build system
Mid-transposition to cleaner generating infratructure
New generating arch, cont. (incl makefiles)
Mid-way restructuring the generating system
Old generators transformed to use new layout
Fix .pyc cleanup rule
Naive blit implementation (testing reference)
Added 'const' to GP_ContextW/H
Make FnPerBPP depend on bit-endian
Add includes to GP_Blit.c
Reimplemented Get/PutPixel with generated code
Add one generated header
Add TRANSFORM_BLIT for blit pre-transformation
Merge remote branch 'origin/master' into generate
Testing framework refactoring and move, new tests.mk
Fix a typo in GP_Get/PutPixel name
Update .gitignore (.dep, library)
Fix a typo
Drastic color/palette code pruning
Added basic common pixeltypes to be generated
Rename GP_Pixel_Access to GP_GetPutPixel
More pruning old code
Implemented various PixelType conversions
Remove annoying readout in pixeltype loading
Fixed Makefile (gen files), disable overflow warning
Rename pixel_access -> getputpixel in gener. libs as well
Write up more conversion code, almost complete
Move scaling code generation from Pixel to Convert
Extend value scaling to all values 1..8
Add GP_Size (unsigned int) type
Add blit color conversion, use GP_Coord and GP_Size in blits
Make context arg of GetPixel const
Add separate pseudorandom generator for testing inputs
Added helper routines for testing parts of core
Support for generating tests source files + demo
Fixed "make clean" in tests/core
Add random gen initialization to testing, move testing files
Fix a bug (arg. order)
Added generated test for GP_Convert
Added helpers and documentation to FnPerBpp
Rename GP_Pixel_Print_* to GP_PixelPrint_*
Rename some helpers in FnPerBpp (colision with planned code)
Added GP_FN_(RET_)PER_PIXELTYPE switch-branching generation
Added GP_CHECK_EqualColors macro
Added debugging macros GP_GET_BITS_DBG and GP_SET_BITS_DBG
Added GP_PixelSNPrint (similar to snprintf())
Extended pixel equality in tests, fixed GP_CHECK_EqualColors
Added hand-made smoke tests for GP_Convert
Minor header inclusion
Bix fix in pixel value scaling
Improve and extend GP_Convert gen. tests
Fix naive blit typo
Add test OBJs to CLEAN in tests.mk
First batch of gen config changes
Whitespace/style cleanup, replace die with logging
Generators changed to templates
Adapted make system to templates
Makesystem fix
Add note about "no bit-endian" value
Finished moving and cleaning templates from .py to .t
Modifications to templating library, extensions
Move test generation to template system, cleanup
Update generating scripts
Make Python warnings in code generation errors
Remove a float division causing a DeprecationWarning
Add filename info to template generation
Remove "with .. as" statement from .py
Fix a varname typo
Make generating python2.4 compatible, add bython binary variable
Fix test: RGB888 byte order
Fix test: remove suspicious aliasing
test running: remove verbose mode
Minor replacement by GP_PIXEL_BITS
Fixed pointer types in Put/GetPixel. Fix pixel offset.
Fix a type-cast warning
Remove most of the "owerflow" warnings, remove make flag
Added docs for pixel size and type
Fixed warning logging
Fix generated GP_TEST parameters
Modified few C99-style for-loops to C98
Add a required header to test
Add libraries to link (ugly)
Add building core tests as a default dependency
Merge branch 'master' of git://repo.or.cz/gfxprim
Prepare GP_INTERNAL_ABORT for exception throwing.
Add headers to GP_Core.h
Initial libs/core SWIG Python wrapper
Fix missing 'static' at inline func def.
Working Python wrappers (sketch versions)
Renaming wrappers around
C wrapper for GP_LoadImage
Minimalistic "pythonic" GP_Context wrapper
Merge branch 'pywrap' of git://repo.or.cz/gfxprim into pywrap
Add GP_WritePixels.h to GP_Core.h
core SWIG cleanup, removed some internals
Prepare for (more) direct wrapping of GP_Context
Complete rewrite of the wrapper class
Update and move GP_Context wrapper docstring
Neuter GP_ContextConvert (always alloc)
Merge branch 'master' of git://repo.or.cz/gfxprim
Merge branch 'master' of git://repo.or.cz/gfxprim into pywrap
Fix GP_ContextConvert
Move setting new GP_Context ownership to SWIG
Add convert and copy methods to Context (python)
Fix GP_ContextConvert
Merge branch 'master' of git://repo.or.cz/gfxprim
Remove forgotten debug messages
Add macro to check for valid PixelType
Fix abort message buffer size
Merge branch 'master' into pywrap
Move gfxprim/ to gp_codegen, refactorize to be (more) movable
Fixed include headers in SWIG file
Creating gfxprim module structure
Merge branch 'pywrap' of ssh://repo.or.cz/srv/git/gfxprim into pywrap
Move pywrap into pylib/gfxprim
Make pywrap compile properly, include into Makefiles
Always use CLEAN+= in pywrap.mk
Add SWIGOPTS, supress selected SWIG warnings
Minor readout improvement
Merge branch 'master' of ssh://repo.or.cz/srv/git/gfxprim
Basic context extending and improting SWIG functions
Rename GP_LoadImage_SWIG to GP_LoadImage_Wrap
Finish importing from *_c, rename gfxprim_core_c to core_c
Fix attribute setting
Enable additional library linking for pywrap.mk
Add separate sub-module for constants
Batch of support for backends in pywrap.
Potentially orphaned contexts, no fix
pywrap: CamelCase the method names, strip GP_ prefix
pywrap: simplify, clean loading, proper module names
pywrap: set SWIG in config.mk
pywrap: Simplify and clean core SWIG imports
pywrap: Clean and simplify backend wrappers
pywrap: use .i instead of .pywrap
pywrap: clean old links
pywrap: wrappers for gfx module
pywrap: separate constants for gfx
Update .gitignore (include libraries)
pywrap: fix excluded elements
pywrap: wrappers for filters, not well-filtered
pywrap: and finally ... added text module!
pywrap: forgotten file
pywrap: make all modules by default
pywrap: minor fix
demos: pywrap demo (SDL, AA and non-AA, no event-handling)
pywrap: fix a warning (make member RO)
pywrap: simplified access to members of Context
pywrap: fix Context.create to CamelCase
demos: cool particle pywrap demo (AA, save)
Added an unsafe way to get buffer for Context pixels
Added a simple helper to run python with GP libs
Relocate some common SWIG code
pywrap: add error-checking wrappers
Merge branch 'master' of ssh://repo.or.cz/srv/git/gfxprim
pywrap: error checking for some modules
Grammar fix
Reformulate part of codegen docs
First part of reworking pywrap for core
Finish Context methods and wrapping
Print stack trace on GP_ABORT inside active Python
configure: update configure to look for libdl
core: Add a C backtrace to GP_ABORT
core: pylib: Pythonic Context.Blit
core: Explicit size of GP_PixelTypes
core: pylib: GP_PixelTypes related access
core: pylib: Cleanup of gfxprim.core and imports
Merge branch 'master' of ssh://repo.or.cz/srv/git/gfxprim
loaders: pylib: cleanup and Context submodule
Merge branch 'master' of ssh://repo.or.cz/srv/git/gfxprim
Make gp_run.sh (slightly) more robust
Update .gitignore for pylib
core: pylib: First Context tests and a runner
core: pylib: Extend PixelTypeDescription with __str__
core: pylib: Fix a bug in Context.Convert
Merge branch 'master' of ssh://repo.or.cz/srv/git/gfxprim
core: Added GP_COntextEqual (naive version)
core: pylib: Context equality
core: pylib: Tests for Context equality
core: pylib: Create Contex.__init__ (remove Context.Create)
core: pylib: Improve str and repr (and tests)
core: pylib: Convert, Blit fix and tests
core: pylib: (pseudo)randomize contexts in tests
core: pylib: Added more tests, discovered bugs in core
Merge branch 'master' of ssh://repo.or.cz/srv/git/gfxprim
doc: Coding style for Python
core: Remove a buggy special case in blitXYXY_Raw_xBPP
core: pylib: Minor modifications to blit tests
test: pylib: Split off test utils, improve @alltypes
core: pylib: Minor test improvements
Merge branch 'master' of ssh://repo.or.cz/srv/git/gfxprim
pylib: test: Fix generated func globals and name
core: pylib: Expand blit tests (rectangle formats)
core: pylib: Fix off-by-one in Blit wrapper
pylib: test: Fix generated func closure bug
core: Actually set GP_Context.bit_endian
pywrap: Fix a typo
pywrap: Add submodule extending method, improve existing
pywrap: gfx: Submodule bindings for gfxprim.gfx
pylib: test: Add universal test generator, use for @alltypes
pylib: test: Remove old @alltypes implementations
pylib: tests: Unit tests for gfx submodule
pylib: tests: Clean up gfx tests
Merge branch 'master' of ssh://repo.or.cz/srv/git/gfxprim
pylib: test: Fix Py3 syntax, improve filter gens.
pywrap: gfx: implement [Fill]Polygon interface
pylib: test: tests for Polygon and FillPolygon
pytest: Fix Blit with alpha channel test
pytest: fix AA test parameters (float->fixpoint)
tests: fix HTML-gen sh script (dash compatibility)
bluebear (7):
Added static initializer for GP_TextStyle; converted binary constants in
Initial support for proportional fonts; the console font now supports
Added missing 7-bit ASCII characters to the proportional font;
Added a per-character left margin to font format.
Slight adjustments to the proportional font.
GP_CalcTextWidth() now works with proportional fonts.
Added '-fPIC' option to C compile phase (seems to be necessary for
metan (115):
Cleaned up tests.
Reworked makefiles.
Added 'make install', fixed flags for linking *.so
Merge branch 'master' of git://repo.or.cz/gfxprim
library renamed to libGP
Simple test for filled triangle.
Code cleanup.
One big header split into small ones.
Unified compilers in Makefiles.
WideLine implementation.
Licence changed to LGPLv2.1
Small code cleanup.
Starting to implement automatic benchmarks.
Code cleanup in tests.
Renamed header, shortened api function name.
Fixed make install.
Fixed compiler warnings on x86.
Created GP_Color.
Fix constants in GP_color.c
More named colors.
Grayscale colors.
Color palette implementation.
Fixed palete -> palette typo.
Fixed GP_CalcLinePoints().
Added GP_color.h and GP_palette.h into GP.h.
Removed useless semicolon.
Make headers uniform.
Palette static initalizaton.
Pretty palette print.
Fixed typos.
Color pretty print && typos.
GP_RetCode moved to header.
Renamed GRAY1, GRAY2 to GRAY_DARK GRAY_LIGTH.
GP_PALETTE_PACK -> GP_PALINDEX_PACK
Added GP_PixelValue type.
Added pixel implementation.
Changed pixel functions.
Added common color pixels conversions.
Added pixel test, worked on GP_Color and GP_Pixel.
Filenames now in CamelCase too.
Added hardware 4bit and 8bit format.
GP_PixelType is now part of GP_Pixel.
Working on GP_PixelToColor().
Added RGB565 and RGB666.
Color type test.
Rewrote all code to use GP_Color instead of long.
Hacked drawing functions so that they work with
Replaced context->columns with context->cols,
Renamed orientation flags in GP_Context and fixed some more code.
All drawing functions now return GP_RetCode
Small comment cleanup.
Renamed cols and rows to w and h.
Added X and Y transformation, doesn't work for
Fixed X and Y mirroring, rotation vs mirroring
Created paraell api for rotated drawing and
Hacked together GP_TText() needs cleanup.
Coded experimental framebuffer driver, note
Rewrote sierpinsky to to use framebuffer driver.
Fixed 'make install' to work.
Added GP_TextHeight().
Added text style initalizer.
Fixed text height computation.
Fixed GP_Transform.h macros.
Added inverse point transformation.
Test now works for transformed text (GP_TText()).
Merge branch 'master' of git://repo.or.cz/gfxprim
GP_TextWidth should add n-1 spaces not n
Added GP_TextMaxWidth().
GP_TextMaxWidth() fixed forgotten xmul and xspace.
Fixed two typos in GP_THLineXYW() implementation.
Implemented first version of GP_Symbol() more to come.
Added transformation for rectangle.
Added tetragon drawing.
Triangle symbols are now symetrical even for even base.
Added kerning to fonttest and fixed GP_TextMaxWidth().
Misused kerning for tracking.
Font loader fixes from bluebear and mine.
Added TODO.
GP_Text and GP_TText now uses default style when
Added first version of asciidoc documentation.
Added font loading into fonttest.
Checked docs with aspell.
Added target for pdf documentation.
Cleaned up compiled-in fonts, more to come.
Changed blue rect in fonttest not to be drawn
Fixed segfault on unknown character in GP_TextWidth().
Slightly better character data checks.
Changed colors in fileview.
Added scrolling to fileview.
Added pagedown/pageup into fileview.
Fixed do {} while (0) around macros.
Added functions for allocating contexts.
Started to write bitmap loaders.
Cleaup: pixel is now plain integer.
Playing with non byte aligned colors.
Makefile cleanup.
Get rid of void* pixels.
Finished PBM Load/Save.
Working on PGM loader.
Added 2bpp drawing and PGM loader.
Added quick and dirty bitmap load/save test.
cleanup: - bits_per_pixel -> bpp
Added context documentation.
Working on documentation.
Simplified putpixel for 1bpp.
Worked on putpixel and getpixel.
Fixed the getpixel macros.
Changed the misleading GP_PIXEL_ADDR(c, y, x) to GP_PIXEL_ADDR(c, x, y).
Quick and dirty GP_Context rotation filters.
Fixed off by one bug in GP_WritePixels24().
Documentation (filters + cleanup).
Put whitespaces where they belong, so
Added code needed for 4bpp support. All that is
Removed old and rotten benchmark code.
Updated documentation as some work-in-progress tasks were finished.
-----------------------------------------------------------------------
repo.or.cz automatic notification. Contact project admin jiri.bluebear.dluhos(a)gmail.com
if you want to unsubscribe, or site admin admin(a)repo.or.cz if you receive
no reply.
--
gfxprim.git ("A simple 2D graphics library with emphasis on correctness and well-defined operation.")
1
0
[repo.or.cz] gfxprim.git branch master updated: 834cc1ebc413ddcae710eda665917661f2c7e71e
by metan 08 May '13
by metan 08 May '13
08 May '13
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 834cc1ebc413ddcae710eda665917661f2c7e71e (commit)
via 3fa8a0fd9f6a858cd5094a1e7bdca634a01a5664 (commit)
via 63bd14db7c7715aba8d71d56078a5cbac1507972 (commit)
from 6ce5bcc70a435c39f01488e7dbe225374f56527f (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/834cc1ebc413ddcae710eda665917661f2c7…
commit 834cc1ebc413ddcae710eda665917661f2c7e71e
Author: Cyril Hrubis <metan(a)ucw.cz>
Date: Wed May 8 17:14:10 2013 +0200
GFXprim 1.0.0-rc0
Signed-off-by: Cyril Hrubis <metan(a)ucw.cz>
diff --git a/include/core/GP_Version.h b/include/core/GP_Version.h
index d1dde65..cb7c944 100644
--- a/include/core/GP_Version.h
+++ b/include/core/GP_Version.h
@@ -29,7 +29,7 @@
#ifndef CORE_GP_VERSION_H
#define CORE_GP_VERSION_H
-#define GP_VER_MAJOR 0
+#define GP_VER_MAJOR 1
#define GP_VER_MINOR 0
#define GP_VER_MICRO 0
@@ -38,6 +38,6 @@
#define GP_VER_STR GP_STRX(GP_VER_MAJOR) "." GP_STRX(GP_VER_MINOR) "." - GP_STRX(GP_VER_MICRO)
+ GP_STRX(GP_VER_MICRO) "-rc0"
#endif /* CORE_GP_VERSION_H */
diff --git a/libver.mk b/libver.mk
index 747c7b4..16f57d4 100644
--- a/libver.mk
+++ b/libver.mk
@@ -3,7 +3,7 @@
# for library names, soname etc
#
-LIB_MAJOR=0
+LIB_MAJOR=1
LIB_MINOR=0
LIB_RELEASE=0
http://repo.or.cz/w/gfxprim.git/commit/3fa8a0fd9f6a858cd5094a1e7bdca634a01a…
commit 3fa8a0fd9f6a858cd5094a1e7bdca634a01a5664
Author: Cyril Hrubis <metan(a)ucw.cz>
Date: Wed May 8 17:06:06 2013 +0200
core: Add header GP_Version.h
Add header with GFXprim version
Signed-off-by: Cyril Hrubis <metan(a)ucw.cz>
diff --git a/demos/c_simple/Makefile b/demos/c_simple/Makefile
index 3ef9ff7..3202c84 100644
--- a/demos/c_simple/Makefile
+++ b/demos/c_simple/Makefile
@@ -18,7 +18,7 @@ APPS=backend_example loaders_example loaders filters_symmetry gfx_koch v4l2_show v4l2_grab convolution weighted_median shapetest koch input_example fileview linetest randomshapetest fonttest loaders_register blittest textaligntest abort sin_AA x11_windows- debug_handler gaussian_noise byte_utils
+ debug_handler gaussian_noise byte_utils version
ifeq ($(HAVE_LIBSDL),yes)
APPS+=SDL_glue
diff --git a/include/core/GP_Core.h b/demos/c_simple/version.c
similarity index 58%
copy from include/core/GP_Core.h
copy to demos/c_simple/version.c
index d10152f..3f83d7e 100644
--- a/include/core/GP_Core.h
+++ b/demos/c_simple/version.c
@@ -16,62 +16,22 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, *
* Boston, MA 02110-1301 USA *
* *
- * Copyright (C) 2009-2010 Jiri "BlueBear" Dluhos *
- * <jiri.bluebear.dluhos(a)gmail.com> *
- * *
- * Copyright (C) 2009-2010 Cyril Hrubis <metan(a)ucw.cz> *
+ * Copyright (C) 2009-2013 Cyril Hrubis <metan(a)ucw.cz> *
* *
*****************************************************************************/
/*
-
- This is header file for public core API.
+
+ Prints GFXprim version.
*/
-#ifndef GP_CORE_H
-#define GP_CORE_H
-
-/* Common building blocks */
-#include "core/GP_Common.h"
-
-/* Context ... */
-#include "core/GP_Context.h"
-
-/* ... and it's trasformations */
-#include "core/GP_Transform.h"
-
-/* Gamma */
-#include "core/GP_Gamma.h"
-
-/* Pixeltypes */
-#include "core/GP_Pixel.h"
-
-/* Pixel conversions */
-#include "core/GP_Convert.h"
-
-/* Individual pixel access */
-#include "core/GP_GetPutPixel.h"
-
-/* Writing pixel blocks */
-#include "GP_WritePixel.h"
-
-/* Blitting */
-#include "core/GP_Blit.h"
-
-/* Debug and debug level */
-#include "core/GP_Debug.h"
-
-/* Color */
-#include "core/GP_Color.h"
-
-/* Progress callback */
-#include "core/GP_ProgressCallback.h"
-
-/* Threads utils */
-#include "core/GP_Threads.h"
+#include <GP.h>
-/* Mix Pixel */
-#include "core/GP_MixPixels.h"
+int main(void)
+{
+ printf("GFXprim verson %i.%i.%i (%s)n",
+ GP_VER_MAJOR, GP_VER_MINOR, GP_VER_MICRO, GP_VER_STR);
-#endif /* GP_CORE_H */
+ return 0;
+}
diff --git a/include/core/GP_Core.h b/include/core/GP_Core.h
index d10152f..38ee3c3 100644
--- a/include/core/GP_Core.h
+++ b/include/core/GP_Core.h
@@ -32,6 +32,9 @@
#ifndef GP_CORE_H
#define GP_CORE_H
+/* Library verson */
+#include "core/GP_Version.h"
+
/* Common building blocks */
#include "core/GP_Common.h"
diff --git a/include/core/GP_Core.h b/include/core/GP_Version.h
similarity index 58%
copy from include/core/GP_Core.h
copy to include/core/GP_Version.h
index d10152f..d1dde65 100644
--- a/include/core/GP_Core.h
+++ b/include/core/GP_Version.h
@@ -16,62 +16,28 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, *
* Boston, MA 02110-1301 USA *
* *
- * Copyright (C) 2009-2010 Jiri "BlueBear" Dluhos *
- * <jiri.bluebear.dluhos(a)gmail.com> *
- * *
- * Copyright (C) 2009-2010 Cyril Hrubis <metan(a)ucw.cz> *
+ * Copyright (C) 2009-2013 Cyril Hrubis <metan(a)ucw.cz> *
* *
*****************************************************************************/
-/*
-
- This is header file for public core API.
-
- */
-
-#ifndef GP_CORE_H
-#define GP_CORE_H
-
-/* Common building blocks */
-#include "core/GP_Common.h"
-
-/* Context ... */
-#include "core/GP_Context.h"
-
-/* ... and it's trasformations */
-#include "core/GP_Transform.h"
-
-/* Gamma */
-#include "core/GP_Gamma.h"
-
-/* Pixeltypes */
-#include "core/GP_Pixel.h"
-
-/* Pixel conversions */
-#include "core/GP_Convert.h"
-
-/* Individual pixel access */
-#include "core/GP_GetPutPixel.h"
-
-/* Writing pixel blocks */
-#include "GP_WritePixel.h"
+ /*
-/* Blitting */
-#include "core/GP_Blit.h"
+ Library version.
-/* Debug and debug level */
-#include "core/GP_Debug.h"
+ */
-/* Color */
-#include "core/GP_Color.h"
+#ifndef CORE_GP_VERSION_H
+#define CORE_GP_VERSION_H
-/* Progress callback */
-#include "core/GP_ProgressCallback.h"
+#define GP_VER_MAJOR 0
+#define GP_VER_MINOR 0
+#define GP_VER_MICRO 0
-/* Threads utils */
-#include "core/GP_Threads.h"
+#define GP_STRX(x) GP_STR(x)
+#define GP_STR(x) #x
-/* Mix Pixel */
-#include "core/GP_MixPixels.h"
+#define GP_VER_STR GP_STRX(GP_VER_MAJOR) "." + GP_STRX(GP_VER_MINOR) "." + GP_STRX(GP_VER_MICRO)
-#endif /* GP_CORE_H */
+#endif /* CORE_GP_VERSION_H */
diff --git a/libs/core/GP_Debug.c b/libs/core/GP_Debug.c
index db1ed26..89d6047 100644
--- a/libs/core/GP_Debug.c
+++ b/libs/core/GP_Debug.c
@@ -22,6 +22,7 @@
#include <stdarg.h>
+#include "core/GP_Version.h"
#include "core/GP_Debug.h"
static unsigned int debug_level = GP_DEFAULT_DEBUG_LEVEL;
@@ -66,6 +67,8 @@ void GP_DebugPrint(int level, const char *file, const char *function, int line,
debug_level);
}
}
+
+ GP_DEBUG(1, "GFXprim library version " GP_VER_STR);
}
if (level > (int)debug_level)
http://repo.or.cz/w/gfxprim.git/commit/63bd14db7c7715aba8d71d56078a5cbac150…
commit 63bd14db7c7715aba8d71d56078a5cbac1507972
Author: Cyril Hrubis <metan(a)ucw.cz>
Date: Wed May 8 16:56:14 2013 +0200
core: Add default HLine implementation.
Fall back to loop with PutPixel if there is no WritePixel for the
particular pixel type.
Signed-off-by: Cyril Hrubis <metan(a)ucw.cz>
diff --git a/libs/gfx/GP_HLine.gen.c.t b/libs/gfx/GP_HLine.gen.c.t
index ce93f98..72f1555 100644
--- a/libs/gfx/GP_HLine.gen.c.t
+++ b/libs/gfx/GP_HLine.gen.c.t
@@ -34,6 +34,13 @@
#include "gfx/GP_HLine.h"
+{# Explicit list of BPP that have optimized write pixel #}
+%% set have_writepixels = ['1BPP_LE', '1BPP_BE',
+ '2BPP_LE', '2BPP_BE',
+ '4BPP_LE', '4BPP_BE',
+ '8BPP', '16BPP',
+ '24BPP', '32BPP']
+
%% for ps in pixelsizes
void GP_HLine_Raw_{{ ps.suffix }}(GP_Context *context, int x0, int x1, int y,
@@ -51,17 +58,22 @@ void GP_HLine_Raw_{{ ps.suffix }}(GP_Context *context, int x0, int x1, int y,
x0 = GP_MAX(x0, 0);
x1 = GP_MIN(x1, (int) context->w - 1);
+%% if ps.suffix in have_writepixels
size_t length = 1 + x1 - x0;
void *start = GP_PIXEL_ADDR(context, x0, y);
-%% if ps.needs_bit_endian()
+%% if ps.needs_bit_endian()
unsigned int offset = GP_PIXEL_ADDR_OFFSET_{{ ps.suffix }}(x0);
GP_WritePixels_{{ ps.suffix }}(start, offset, length, pixel);
-%% else
+%% else
GP_WritePixels_{{ ps.suffix }}(start, length, pixel);
-%% endif
+%% endif
+%% else
+ for (;x0 <= x1; x0++)
+ GP_PutPixel_Raw_{{ ps.suffix }}(context, x0, y, pixel);
+%% endif
}
%% endfor
-----------------------------------------------------------------------
Summary of changes:
demos/c_simple/Makefile | 2 +-
.../bogoman_loader.h => c_simple/version.c} | 17 +++++++++---
include/core/GP_Core.h | 3 ++
.../GP_InputDriverKBD.h => core/GP_Version.h} | 27 +++++++++++---------
libs/core/GP_Debug.c | 3 ++
libs/gfx/GP_HLine.gen.c.t | 18 +++++++++++--
libver.mk | 2 +-
7 files changed, 50 insertions(+), 22 deletions(-)
copy demos/{bogoman/bogoman_loader.h => c_simple/version.c} (89%)
copy include/{input/GP_InputDriverKBD.h => core/GP_Version.h} (81%)
repo.or.cz automatic notification. Contact project admin jiri.bluebear.dluhos(a)gmail.com
if you want to unsubscribe, or site admin admin(a)repo.or.cz if you receive
no reply.
--
gfxprim.git ("A simple 2D graphics library with emphasis on correctness and well-defined operation.")
1
0
[repo.or.cz] gfxprim.git branch master updated: 6ce5bcc70a435c39f01488e7dbe225374f56527f
by metan 04 May '13
by metan 04 May '13
04 May '13
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 6ce5bcc70a435c39f01488e7dbe225374f56527f (commit)
via 4f1e099df9eea9423c5cc44d6ac814642a8bde86 (commit)
from f5ba4d748fcead8e9acdce5a110ebb718ee8fd0c (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/6ce5bcc70a435c39f01488e7dbe225374f56…
commit 6ce5bcc70a435c39f01488e7dbe225374f56527f
Author: Cyril Hrubis <metan(a)ucw.cz>
Date: Sat May 4 23:03:45 2013 +0200
core,gfx: Fix HLine & WritePixels.
* Offset in write pixels is now passed in bits
* The GP_HLine uses correct macros for computing
offsets
(Fixes modulo by zero on RGB666)
Signed-off-by: Cyril Hrubis <metan(a)ucw.cz>
diff --git a/libs/core/GP_WritePixel.c b/libs/core/GP_WritePixel.c
index 27b300b..f53ad9f 100644
--- a/libs/core/GP_WritePixel.c
+++ b/libs/core/GP_WritePixel.c
@@ -189,17 +189,17 @@ void GP_WritePixels_2BPP_LE(void *start, uint8_t off,
switch (off) {
case 0:
break;
- case 1:
+ case 2:
GP_SET_BITS1_ALIGNED(2, 2, start, val);
if (--len == 0)
return;
- case 2:
+ case 4:
GP_SET_BITS1_ALIGNED(4, 2, start, val);
if (--len == 0)
return;
- case 3:
+ case 6:
GP_SET_BITS1_ALIGNED(6, 2, start, val);
if (--len == 0)
@@ -235,17 +235,17 @@ void GP_WritePixels_2BPP_BE(void *start, uint8_t off,
switch (off) {
case 0:
break;
- case 1:
+ case 2:
GP_SET_BITS1_ALIGNED(6, 2, start, val);
if (--len == 0)
return;
- case 2:
+ case 4:
GP_SET_BITS1_ALIGNED(4, 2, start, val);
if (--len == 0)
return;
- case 3:
+ case 6:
GP_SET_BITS1_ALIGNED(2, 2, start, val);
if (--len == 0)
@@ -286,7 +286,7 @@ void GP_WritePixels_4BPP_LE(void *start, uint8_t off,
switch (off) {
case 0:
break;
- case 1:
+ case 4:
GP_SET_BITS1_ALIGNED(4, 4, start, val);
if (--len == 0)
@@ -318,7 +318,7 @@ void GP_WritePixels_4BPP_BE(void *start, uint8_t off,
switch (off) {
case 0:
break;
- case 1:
+ case 4:
GP_SET_BITS1_ALIGNED(0, 4, start, val);
if (--len == 0)
diff --git a/libs/gfx/GP_HLine.gen.c.t b/libs/gfx/GP_HLine.gen.c.t
index 5e0a761..ce93f98 100644
--- a/libs/gfx/GP_HLine.gen.c.t
+++ b/libs/gfx/GP_HLine.gen.c.t
@@ -29,6 +29,7 @@
%% block body
+#include "core/GP_GetPutPixel.gen.h"
#include "core/GP_WritePixel.h"
#include "gfx/GP_HLine.h"
@@ -54,7 +55,9 @@ void GP_HLine_Raw_{{ ps.suffix }}(GP_Context *context, int x0, int x1, int y,
void *start = GP_PIXEL_ADDR(context, x0, y);
%% if ps.needs_bit_endian()
- GP_WritePixels_{{ ps.suffix }}(start, x0 % (8 / context->bpp), length, pixel);
+ unsigned int offset = GP_PIXEL_ADDR_OFFSET_{{ ps.suffix }}(x0);
+
+ GP_WritePixels_{{ ps.suffix }}(start, offset, length, pixel);
%% else
GP_WritePixels_{{ ps.suffix }}(start, length, pixel);
%% endif
http://repo.or.cz/w/gfxprim.git/commit/4f1e099df9eea9423c5cc44d6ac814642a8b…
commit 4f1e099df9eea9423c5cc44d6ac814642a8bde86
Author: Cyril Hrubis <metan(a)ucw.cz>
Date: Sat May 4 22:28:15 2013 +0200
core: WritePixel: Print Unimplemented on 18BPP
Signed-off-by: Cyril Hrubis <metan(a)ucw.cz>
diff --git a/libs/core/GP_WritePixel.gen.c.t b/libs/core/GP_WritePixel.gen.c.t
index 2bc89b3..89ecc1f 100644
--- a/libs/core/GP_WritePixel.gen.c.t
+++ b/libs/core/GP_WritePixel.gen.c.t
@@ -16,7 +16,7 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, *
* Boston, MA 02110-1301 USA *
* *
- * Copyright (C) 2009-2012 Cyril Hrubis <metan(a)ucw.cz> *
+ * Copyright (C) 2009-2013 Cyril Hrubis <metan(a)ucw.cz> *
* *
*****************************************************************************/
@@ -29,6 +29,7 @@
#include "core/GP_GetSetBits.h"
#include "core/GP_GetPutPixel.h"
#include "core/GP_WritePixel.gen.h"
+#include "core/GP_Debug.h"
{# Some pixel types has hand written optimized functions #}
%% set hand_optimized = ['1BPP_LE', '1BPP_BE',
@@ -43,12 +44,12 @@
void GP_WritePixels_{{ ps.suffix }}(void *start, uint8_t off,
size_t cnt, unsigned int val)
{
- //TODO:
+ GP_TODO("Unimplemented");
}
%% else
void GP_WritePixels_{{ ps.suffix }}(void *start, size_t cnt, unsigned int val)
{
- //TODO:
+ GP_TODO("Unimplemented");
}
%% endif
-----------------------------------------------------------------------
Summary of changes:
libs/core/GP_WritePixel.c | 16 ++++++++--------
libs/core/GP_WritePixel.gen.c.t | 7 ++++---
libs/gfx/GP_HLine.gen.c.t | 5 ++++-
3 files changed, 16 insertions(+), 12 deletions(-)
repo.or.cz automatic notification. Contact project admin jiri.bluebear.dluhos(a)gmail.com
if you want to unsubscribe, or site admin admin(a)repo.or.cz if you receive
no reply.
--
gfxprim.git ("A simple 2D graphics library with emphasis on correctness and well-defined operation.")
1
0
[repo.or.cz] gfxprim.git branch master updated: f5ba4d748fcead8e9acdce5a110ebb718ee8fd0c
by metan 04 May '13
by metan 04 May '13
04 May '13
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 f5ba4d748fcead8e9acdce5a110ebb718ee8fd0c (commit)
from 2a2dfc22e430b4c6af1f7a8a9a0a3fd4e1a5a216 (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/f5ba4d748fcead8e9acdce5a110ebb718ee8…
commit f5ba4d748fcead8e9acdce5a110ebb718ee8fd0c
Author: Cyril Hrubis <metan(a)ucw.cz>
Date: Sat May 4 21:00:58 2013 +0200
tests: Add API coverage for GFX.
Signed-off-by: Cyril Hrubis <metan(a)ucw.cz>
diff --git a/tests/gfx/APICoverage.gen.c.t b/tests/gfx/APICoverage.gen.c.t
new file mode 100644
index 0000000..453e1ed
--- /dev/null
+++ b/tests/gfx/APICoverage.gen.c.t
@@ -0,0 +1,138 @@
+/*****************************************************************************
+ * This file is part of gfxprim library. *
+ * *
+ * Gfxprim is free software; you can redistribute it and/or *
+ * modify it under the terms of the GNU Lesser General Public *
+ * License as published by the Free Software Foundation; either *
+ * version 2.1 of the License, or (at your option) any later version. *
+ * *
+ * Gfxprim is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
+ * Lesser General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU Lesser General Public *
+ * License along with gfxprim; if not, write to the Free Software *
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, *
+ * Boston, MA 02110-1301 USA *
+ * *
+ * Copyright (C) 2009-2013 Cyril Hrubis <metan(a)ucw.cz> *
+ * *
+ *****************************************************************************/
+
+ /*
+
+ The purpose of this test is to exercise as much codepaths as possible
+ without checking for result corectness.
+
+ */
+
+%% extends "base.test.c.t"
+
+%% block body
+
+#include <stdio.h>
+
+#include <core/GP_Context.h>
+#include <gfx/GP_Gfx.h>
+
+#include "tst_test.h"
+
+%% set API_List = [
+ ['Fill', 'GP_Context:in', 'int:pixel'],
+
+ ['HLine', 'GP_Context:in', 'int:x0', 'int:x1', 'int:y', 'int:pixel'],
+ ['VLine', 'GP_Context:in', 'int:x', 'int:y0', 'int:y1', 'int:pixel'],
+
+ ['Line', 'GP_Context:in', 'int:x0', 'int:y0',
+ 'int:x1', 'int:y1', 'int:pixel'],
+
+ ['Circle', 'GP_Context:in', 'int:xcenter', 'int:ycenter',
+ 'int:r', 'int:pixel'],
+ ['FillCircle', 'GP_Context:in', 'int:xcenter', 'int:ycenter',
+ 'int:r', 'int:pixel'],
+
+ ['Ellipse', 'GP_Context:in', 'int:xcenter', 'int:ycenter',
+ 'int:a', 'int:b', 'int:pixel'],
+ ['FillEllipse', 'GP_Context:in', 'int:xcenter', 'int:ycenter',
+ 'int:a', 'int:b', 'int:pixel'],
+
+ ['Ring', 'GP_Context:in', 'int:xc', 'int:yc',
+ 'int:r1', 'int:r2', 'int:pixel'],
+ ['FillRing', 'GP_Context:in', 'int:xc', 'int:yc',
+ 'int:r1', 'int:r2', 'int:pixel'],
+
+ ['Rect', 'GP_Context:in', 'int:x0', 'int:y0',
+ 'int:x1', 'int:y1', 'int:pixel'],
+ ['FillRect', 'GP_Context:in', 'int:x0', 'int:y0',
+ 'int:x1', 'int:y1', 'int:pixel'],
+
+ ['Triangle', 'GP_Context:in', 'int:x0', 'int:y0',
+ 'int:x1', 'int:y1', 'int:x2', 'int:y2', 'int:pixel'],
+ ['FillTriangle', 'GP_Context:in', 'int:x0', 'int:y0',
+ 'int:x1', 'int:y1', 'int:x2', 'int:y2', 'int:pixel'],
+
+ ['Tetragon', 'GP_Context:in', 'int:x0', 'int:y0', 'int:x1', 'int:y1',
+ 'int:x2', 'int:y2', 'int:x3', 'int:y3', 'int:pixel'],
+ ['FillTetragon', 'GP_Context:in', 'int:x0', 'int:y0', 'int:x1', 'int:y1',
+ 'int:x2', 'int:y2', 'int:x3', 'int:y3', 'int:pixel'],
+
+]
+
+%% macro prep_context(id, pt)
+ GP_Context *{{ id }} = GP_ContextAlloc(331, 331, GP_PIXEL_{{ pt.name }});
+%% endmacro
+
+%% macro prep_int(id)
+ int {{ id }} = 2;
+%% endmacro
+
+%% macro prep_param(param, pt)
+%% if (param.split(':', 1)[0] == 'GP_Context')
+{{ prep_context(param.split(':', 1)[1], pt) }}
+%% endif
+%% if (param.split(':', 1)[0] == 'float')
+{{ prep_float(param.split(':', 1)[1]) }}
+%% endif
+%% if (param.split(':', 1)[0] == 'int')
+{{ prep_int(param.split(':', 1)[1]) }}
+%% endif
+%% endmacro
+
+{% macro get_param(param) %}{% if len(param.split(':', 1)) == 1 %}NULL{% else %}{{ param.split(':', 1)[1] }}{% endif %}{% endmacro %}
+
+%% for fn in API_List
+%% for pt in pixeltypes
+%% if not pt.is_unknown()
+
+static int Gfx_{{ fn[0]}}_{{ pt.name }}(void)
+{
+%% for param in fn[1:]
+{{ prep_param(param, pt) }}
+%% endfor
+
+ GP_{{ fn[0] }}({{ get_param(fn[1]) }}{% for param in fn[2:] %}, {{ get_param(param) }}{% endfor %});
+
+ return TST_SUCCESS;
+}
+
+%% endif
+%% endfor
+%% endfor
+
+const struct tst_suite tst_suite = {
+ .suite_name = "Gfx API Coverage",
+ .tests = {
+%% for fn in API_List
+%% for pt in pixeltypes
+%% if not pt.is_unknown()
+ {.name = "{{ fn[0] }} {{ pt.name }}",
+ .tst_fn = Gfx_{{ fn[0] }}_{{ pt.name }}},
+%% endif
+%% endfor
+%% endfor
+ {.name = NULL}
+ }
+};
+
+%% endblock body
diff --git a/tests/gfx/Makefile b/tests/gfx/Makefile
index ddfdca3..cf845f6 100644
--- a/tests/gfx/Makefile
+++ b/tests/gfx/Makefile
@@ -1,10 +1,11 @@
TOPDIR=../..
include $(TOPDIR)/pre.mk
-CSOURCES=$(shell echo *.c)
+CSOURCES=$(filter-out $(wildcard *.gen.c),$(wildcard *.c))
+GENSOURCES=APICoverage.gen.c
APPS=gfx_benchmark Circle FillCircle Line CircleSeg Polygon Ellipse HLine- VLine PutPixelAA HLineAA LineAA
+ VLine PutPixelAA HLineAA LineAA APICoverage.gen
Circle: common.o
FillCircle: common.o
@@ -20,5 +21,6 @@ LineAA: common.o
include ../tests.mk
+include $(TOPDIR)/gen.mk
include $(TOPDIR)/app.mk
include $(TOPDIR)/post.mk
diff --git a/tests/gfx/test_list.txt b/tests/gfx/test_list.txt
index 0368b0f..8070210 100644
--- a/tests/gfx/test_list.txt
+++ b/tests/gfx/test_list.txt
@@ -1,5 +1,7 @@
# GFX test list
+APICoverage.gen
+
HLine
VLine
Line
-----------------------------------------------------------------------
Summary of changes:
tests/gfx/APICoverage.gen.c.t | 138 +++++++++++++++++++++++++++++++++++++++++
tests/gfx/Makefile | 6 +-
tests/gfx/test_list.txt | 2 +
3 files changed, 144 insertions(+), 2 deletions(-)
create mode 100644 tests/gfx/APICoverage.gen.c.t
repo.or.cz automatic notification. Contact project admin jiri.bluebear.dluhos(a)gmail.com
if you want to unsubscribe, or site admin admin(a)repo.or.cz if you receive
no reply.
--
gfxprim.git ("A simple 2D graphics library with emphasis on correctness and well-defined operation.")
1
0
[repo.or.cz] gfxprim.git branch master updated: 2a2dfc22e430b4c6af1f7a8a9a0a3fd4e1a5a216
by metan 04 May '13
by metan 04 May '13
04 May '13
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 2a2dfc22e430b4c6af1f7a8a9a0a3fd4e1a5a216 (commit)
from 96d41c793e2546dadb958eab5743291f7a6e0d73 (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/2a2dfc22e430b4c6af1f7a8a9a0a3fd4e1a5…
commit 2a2dfc22e430b4c6af1f7a8a9a0a3fd4e1a5a216
Author: Cyril Hrubis <metan(a)ucw.cz>
Date: Sat May 4 16:18:59 2013 +0200
Revert "core: Convert_Scale: Add support for > 8bits."
This reverts commit 8bababd6a7972a3d0e724ac8fb4c3ee8495a7e16.
Sorry I've screewed this one.
This reverts the original change and only adds support for > 8bits.
Signed-off-by: Cyril Hrubis <metan(a)ucw.cz>
diff --git a/include/core/GP_Convert_Scale.gen.h.t b/include/core/GP_Convert_Scale.gen.h.t
index db3373b..9261a90 100644
--- a/include/core/GP_Convert_Scale.gen.h.t
+++ b/include/core/GP_Convert_Scale.gen.h.t
@@ -26,7 +26,7 @@
{% block descr %}Fast value scaling macros{% endblock %}
{% macro multcoef(s1, s2) -%}
-(0{% for i in range((s2 + s1 - 1) // s1) %}+(2<<{{ (i * s1) }}){% endfor %})
+(0{% for i in range((s2 + s1 - 1) // s1) %}+{{ 2 ** (i * s1) }}{% endfor %})
{%- endmacro %}
%% block body
-----------------------------------------------------------------------
Summary of changes:
include/core/GP_Convert_Scale.gen.h.t | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
repo.or.cz automatic notification. Contact project admin jiri.bluebear.dluhos(a)gmail.com
if you want to unsubscribe, or site admin admin(a)repo.or.cz if you receive
no reply.
--
gfxprim.git ("A simple 2D graphics library with emphasis on correctness and well-defined operation.")
1
0
[repo.or.cz] gfxprim.git branch master updated: 96d41c793e2546dadb958eab5743291f7a6e0d73
by metan 03 May '13
by metan 03 May '13
03 May '13
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 96d41c793e2546dadb958eab5743291f7a6e0d73 (commit)
from a7806826a3e654dcb0127a5776d63c5b388964fe (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/96d41c793e2546dadb958eab5743291f7a6e…
commit 96d41c793e2546dadb958eab5743291f7a6e0d73
Author: Cyril Hrubis <metan(a)ucw.cz>
Date: Fri May 3 22:07:56 2013 +0200
backends: X11: Filter out MapNotify and MapReparent
Signed-off-by: Cyril Hrubis <metan(a)ucw.cz>
diff --git a/libs/backends/GP_InputDriverX11.c b/libs/backends/GP_InputDriverX11.c
index a2bb7ef..750dc17 100644
--- a/libs/backends/GP_InputDriverX11.c
+++ b/libs/backends/GP_InputDriverX11.c
@@ -286,6 +286,12 @@ void GP_InputDriverX11EventPut(struct GP_EventQueue *event_queue,
}
#endif
break;
+ case MapNotify:
+ GP_DEBUG(1, "MapNotify event received");
+ break;
+ case ReparentNotify:
+ GP_DEBUG(1, "ReparentNotify event received");
+ break;
default:
GP_WARN("Unhandled X11 event type %u", ev->type);
}
-----------------------------------------------------------------------
Summary of changes:
libs/backends/GP_InputDriverX11.c | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
repo.or.cz automatic notification. Contact project admin jiri.bluebear.dluhos(a)gmail.com
if you want to unsubscribe, or site admin admin(a)repo.or.cz if you receive
no reply.
--
gfxprim.git ("A simple 2D graphics library with emphasis on correctness and well-defined operation.")
1
0
[repo.or.cz] gfxprim.git branch master updated: a7806826a3e654dcb0127a5776d63c5b388964fe
by metan 03 May '13
by metan 03 May '13
03 May '13
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 a7806826a3e654dcb0127a5776d63c5b388964fe (commit)
via 1ae981689ed3c4d210a422eca2ad38c3d7976809 (commit)
via 0c057913df917d3e22393a2bce9db9fb75ac0583 (commit)
from 011c9fd83af2c83740583e04c274edbce551a0fb (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/a7806826a3e654dcb0127a5776d63c5b3889…
commit a7806826a3e654dcb0127a5776d63c5b388964fe
Author: Cyril Hrubis <metan(a)ucw.cz>
Date: Fri May 3 20:55:15 2013 +0200
install: Hack /usr/lib vs /usr/lib64 detection.
This should fix installation on Fedora until we made proper
'make install' for the C library.
Signed-off-by: Cyril Hrubis <metan(a)ucw.cz>
diff --git a/install.sh b/install.sh
index f631083..fef3703 100755
--- a/install.sh
+++ b/install.sh
@@ -7,11 +7,16 @@ if test -z "$INSTALL_PREFIX"; then
fi
HEADER_LOC="$INSTALL_PREFIX/include/"
-LIB_LOC="$INSTALL_PREFIX/lib/"
+if [ -d $INSTALL_PREFIX/lib64 ]; then
+ LIB_LOC="$INSTALL_PREFIX/lib64/"
+else
+ LIB_LOC="$INSTALL_PREFIX/lib/"
+fi
+
BIN_LOC="$INSTALL_PREFIX/bin/"
# Headers
-echo "INSTALL headers"
+echo "INSTALL headers ($HEADER_LOC)"
install -m 775 -d "${HEADER_LOC}GP"
for i in `ls include/`; do
if [ -d "include/$i" ]; then
@@ -24,7 +29,7 @@ for i in `ls include/`; do
done
# Library
-echo "INSTALL libraries"
+echo "INSTALL libraries ($LIB_LOC)"
install -m 775 -d "$LIB_LOC"
for i in build/*.so build/*.so.* build/*.a; do
diff --git a/pyinst.mk b/pyinst.mk
index cc4484a..38d08ef 100644
--- a/pyinst.mk
+++ b/pyinst.mk
@@ -6,7 +6,13 @@
ifdef SWIG
ifdef PYTHON_CONFIG
-PY_INSTALL_PREFIX=$(prefix)/lib/python$(PYTHON_VER)/gfxprim/$(LIBNAME)
+# Detect /usr/lib64 vs /usr/lib
+LIBDIR=$(findstring lib64,$(wildcard $(prefix)/*))
+ifeq ($(LIBDIR),)
+LIBDIR=lib
+endif
+
+PY_INSTALL_PREFIX=$(prefix)/$(LIBDIR)/python$(PYTHON_VER)/gfxprim/$(LIBNAME)
ifdef DESTDIR
PY_INSTALL_PREFIX:=$(DESTDIR)$(PY_INSTALL_PREFIX)
http://repo.or.cz/w/gfxprim.git/commit/1ae981689ed3c4d210a422eca2ad38c3d797…
commit 1ae981689ed3c4d210a422eca2ad38c3d7976809
Author: Cyril Hrubis <metan(a)ucw.cz>
Date: Fri May 3 20:38:51 2013 +0200
gfxprim_config.py: Remove a few odd pixel types.
This just cleanups the config (and some of the code) and removes a few
odd pixel types.
Signed-off-by: Cyril Hrubis <metan(a)ucw.cz>
diff --git a/demos/grinder/grinder.c b/demos/grinder/grinder.c
index 1f8eccb..ee9d349 100644
--- a/demos/grinder/grinder.c
+++ b/demos/grinder/grinder.c
@@ -433,7 +433,6 @@ static const char *dither_formats[] = {
"g2",
"g4",
"g8",
- "rgb333",
"rgb565",
"rgb666",
NULL,
@@ -444,7 +443,6 @@ static const GP_PixelType dither_pixel_types[] = {
GP_PIXEL_G2,
GP_PIXEL_G4,
GP_PIXEL_G8,
- GP_PIXEL_xRGB7333,
GP_PIXEL_RGB565,
GP_PIXEL_RGB666,
};
diff --git a/gfxprim_config.py b/gfxprim_config.py
index cb3fb44..1af12c9 100644
--- a/gfxprim_config.py
+++ b/gfxprim_config.py
@@ -45,7 +45,6 @@ config = GfxPrimConfig(
#
# Standard RGB types
#
-
PixelType(name='xRGB8888', pixelsize=PS_32BPP, chanslist=[
('R', 16, 8),
('G', 8, 8),
@@ -76,26 +75,8 @@ config = GfxPrimConfig(
('R', 12, 6),
('G', 6, 6),
('B', 0, 6)]),
-
- PixelType(name='xRGB14666', pixelsize=PS_32BPP, chanslist=[
- ('R', 12, 6),
- ('G', 6, 6),
- ('B', 0, 6)]),
#
- # Added for dithering tests
- #
- PixelType(name='xRGB7333', pixelsize=PS_16BPP, chanslist=[
- ('R', 6, 3),
- ('G', 3, 3),
- ('B', 0, 3)]),
-
- PixelType(name='xRGB2222', pixelsize=PS_8BPP, chanslist=[
- ('R', 4, 2),
- ('G', 2, 2),
- ('B', 0, 2)]),
-
- #
# Palette types
#
PixelType(name='P2', pixelsize=PS_2BPP_LE, chanslist=[
@@ -124,13 +105,5 @@ config = GfxPrimConfig(
PixelType(name='G16', pixelsize=PS_16BPP, chanslist=[
('V', 0, 16)]),
-
- #
- # Experiments
- #
-
- PixelType(name='VA12', pixelsize=PS_4BPP_BE, chanslist=[
- ('A', 1, 2),
- ('V', 3, 1)]),
]
)
diff --git a/include/core/GP_Convert.gen.h.t b/include/core/GP_Convert.gen.h.t
index 4672708..7dc25a9 100644
--- a/include/core/GP_Convert.gen.h.t
+++ b/include/core/GP_Convert.gen.h.t
@@ -16,7 +16,7 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, *
* Boston, MA 02110-1301 USA *
* *
- * Copyright (C) 2011 Cyril Hrubis <metan(a)ucw.cz> *
+ * Copyright (C) 2011-2013 Cyril Hrubis <metan(a)ucw.cz> *
* Copyright (C) 2011 Tomas Gavenciak <gavento(a)ucw.cz> *
* *
*****************************************************************************/
@@ -103,6 +103,5 @@ GP_Pixel GP_PixelTo{{ pt.name }}(GP_Pixel pixel, GP_PixelType type);
/* Experimental macros testing generated scripts */
{{ GP_Pixel_TYPE_TO_TYPE(pixeltypes_dict['RGB565'], pixeltypes_dict['RGBA8888']) }}
{{ GP_Pixel_TYPE_TO_TYPE(pixeltypes_dict['RGBA8888'], pixeltypes_dict['G2']) }}
-{{ GP_Pixel_TYPE_TO_TYPE(pixeltypes_dict['VA12'], pixeltypes_dict['RGBA8888']) }}
%% endblock body
http://repo.or.cz/w/gfxprim.git/commit/0c057913df917d3e22393a2bce9db9fb75ac…
commit 0c057913df917d3e22393a2bce9db9fb75ac0583
Author: Cyril Hrubis <metan(a)ucw.cz>
Date: Fri May 3 19:56:59 2013 +0200
demos: spiv: Handle transparent images better.
* Remove the workaround that converts all images to RGB888.
- the Resize filters now can handle all pixel formats
(minus the cubic float, but who cares about this one anyway)
* Fill the buffer with chessboard-like pattern before blit
image with transparency.
Signed-off-by: Cyril Hrubis <metan(a)ucw.cz>
diff --git a/demos/spiv/spiv.c b/demos/spiv/spiv.c
index 8b94b99..f16be8c 100644
--- a/demos/spiv/spiv.c
+++ b/demos/spiv/spiv.c
@@ -236,12 +236,12 @@ static GP_Context *load_image(struct loader_params *params, int elevate)
}
/* Workaround */
- if (img->pixel_type != GP_PIXEL_RGB888) {
- GP_Context *tmp;
- tmp = GP_ContextConvertAlloc(img, GP_PIXEL_RGB888);
- GP_ContextFree(img);
- img = tmp;
- }
+// if (img->pixel_type != GP_PIXEL_RGB888) {
+// GP_Context *tmp;
+// tmp = GP_ContextConvertAlloc(img, GP_PIXEL_RGB888);
+// GP_ContextFree(img);
+// img = tmp;
+// }
image_cache_put(params->img_orig_cache, img, params->img_path, 0, 0);
@@ -252,6 +252,30 @@ static GP_Context *load_image(struct loader_params *params, int elevate)
}
/*
+ * Fill context with chessboard-like pattern.
+ */
+static void pattern_fill(GP_Context *ctx, unsigned int x0, unsigned int y0, unsigned int w, unsigned int h)
+{
+ unsigned int x, y;
+
+ GP_Pixel g1 = GP_RGBToContextPixel(0x44, 0x44, 0x44, ctx);
+ GP_Pixel g2 = GP_RGBToContextPixel(0x33, 0x33, 0x33, ctx);
+
+ for (y = 0; y < h; y++) {
+ for (x = 0; x < w; x++) {
+ GP_Pixel pix;
+
+ if ((x%(w/10) < (w/20)) ^ (y%(h/10) < (h/20)))
+ pix = g1;
+ else
+ pix = g2;
+
+ GP_PutPixel(ctx, x0 + x, y0 + y, pix);
+ }
+ }
+}
+
+/*
* Updates display.
*/
static void update_display(struct loader_params *params, GP_Context *img)
@@ -305,6 +329,9 @@ static void update_display(struct loader_params *params, GP_Context *img)
GP_FilterFloydSteinberg_RGB888(img, &sub_display, NULL);
// GP_FilterHilbertPeano_RGB888(img, &sub_display, NULL);
} else {
+ if (GP_PixelHasFlags(img->pixel_type, GP_PIXEL_HAS_ALPHA))
+ pattern_fill(context, cx, cy, img->w, img->h);
+
GP_Blit_Clipped(img, 0, 0, img->w, img->h, context, cx, cy);
}
-----------------------------------------------------------------------
Summary of changes:
demos/grinder/grinder.c | 2 --
demos/spiv/spiv.c | 39 +++++++++++++++++++++++++++++++++------
gfxprim_config.py | 27 ---------------------------
include/core/GP_Convert.gen.h.t | 3 +--
install.sh | 11 ++++++++---
pyinst.mk | 8 +++++++-
6 files changed, 49 insertions(+), 41 deletions(-)
repo.or.cz automatic notification. Contact project admin jiri.bluebear.dluhos(a)gmail.com
if you want to unsubscribe, or site admin admin(a)repo.or.cz if you receive
no reply.
--
gfxprim.git ("A simple 2D graphics library with emphasis on correctness and well-defined operation.")
1
0
[repo.or.cz] gfxprim.git branch master updated: 011c9fd83af2c83740583e04c274edbce551a0fb
by metan 03 May '13
by metan 03 May '13
03 May '13
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 011c9fd83af2c83740583e04c274edbce551a0fb (commit)
from 7a70f93fbae16a2ff97c983e8c32968efabdaa0a (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/011c9fd83af2c83740583e04c274edbce551…
commit 011c9fd83af2c83740583e04c274edbce551a0fb
Author: Cyril Hrubis <metan(a)ucw.cz>
Date: Fri May 3 16:39:51 2013 +0200
backends: X11: Check for supported visual class.
Also strip some trailing whitespaces.
Signed-off-by: Cyril Hrubis <metan(a)ucw.cz>
diff --git a/libs/backends/GP_X11.c b/libs/backends/GP_X11.c
index 79b65c6..a95e626 100644
--- a/libs/backends/GP_X11.c
+++ b/libs/backends/GP_X11.c
@@ -150,11 +150,11 @@ static void x11_ev(XEvent *ev)
if (ev->xconfigure.width == (int)self->context->w &&
ev->xconfigure.height == (int)self->context->h)
break;
-
+
if (ev->xconfigure.width == (int)win->new_w &&
ev->xconfigure.height == (int)win->new_h)
break;
-
+
win->new_w = ev->xconfigure.width;
win->new_h = ev->xconfigure.height;
@@ -172,7 +172,7 @@ static void x11_ev(XEvent *ev)
static void x11_poll(GP_Backend *self)
{
- struct x11_win *win = GP_BACKEND_PRIV(self);
+ struct x11_win *win = GP_BACKEND_PRIV(self);
XEvent ev;
XLockDisplay(win->dpy);
@@ -187,7 +187,7 @@ static void x11_poll(GP_Backend *self)
static void x11_wait(GP_Backend *self)
{
- struct x11_win *win = GP_BACKEND_PRIV(self);
+ struct x11_win *win = GP_BACKEND_PRIV(self);
XEvent ev;
XLockDisplay(win->dpy);
@@ -200,8 +200,8 @@ static void x11_wait(GP_Backend *self)
static int resize_buffer(struct GP_Backend *self, uint32_t w, uint32_t h)
{
- struct x11_win *win = GP_BACKEND_PRIV(self);
-
+ struct x11_win *win = GP_BACKEND_PRIV(self);
+
if (win->shm_flag) {
if (resize_shm_ximage(self, w, h))
return 1;
@@ -217,10 +217,10 @@ static int x11_set_attributes(struct GP_Backend *self,
uint32_t w, uint32_t h,
const char *caption)
{
- struct x11_win *win = GP_BACKEND_PRIV(self);
-
+ struct x11_win *win = GP_BACKEND_PRIV(self);
+
XLockDisplay(win->dpy);
-
+
if (caption != NULL) {
GP_DEBUG(3, "Setting window caption to '%s'", caption);
XmbSetWMProperties(win->dpy, win->win, caption, caption,
@@ -241,7 +241,7 @@ static int x11_set_attributes(struct GP_Backend *self,
static int x11_resize_ack(struct GP_Backend *self)
{
- struct x11_win *win = GP_BACKEND_PRIV(self);
+ struct x11_win *win = GP_BACKEND_PRIV(self);
int ret;
XLockDisplay(win->dpy);
@@ -249,7 +249,7 @@ static int x11_resize_ack(struct GP_Backend *self)
GP_DEBUG(3, "Setting buffer size to %ux%u", win->new_w, win->new_h);
ret = resize_buffer(self, win->new_w, win->new_h);
-
+
win->resized_flag = 0;
if (!ret) {
@@ -264,6 +264,42 @@ static int x11_resize_ack(struct GP_Backend *self)
return ret;
}
+static const char *visual_class_name(int class)
+{
+ switch (class) {
+ case StaticGray:
+ return "StaticGray";
+ case GrayScale:
+ return "GrayScale";
+ case StaticColor:
+ return "StaticColor";
+ case PseudoColor:
+ return "PseudoColor";
+ case TrueColor:
+ return "TrueColor";
+ case DirectColor:
+ return "DirectColor";
+ }
+
+ return "Unknown";
+}
+
+static enum GP_PixelType match_pixel_type(struct x11_win *win)
+{
+ GP_DEBUG(1, "Matching image pixel type, visual=%s depth=%u",
+ visual_class_name(win->vis->class), win->img->bits_per_pixel);
+
+ if (win->vis->class == DirectColor || win->vis->class == TrueColor) {
+ return GP_PixelRGBMatch(win->img->red_mask,
+ win->img->green_mask,
+ win->img->blue_mask,
+ 0x0, win->img->bits_per_pixel);
+ }
+
+ GP_FATAL("Unsupported visual %s", visual_class_name(win->vis->class));
+ return GP_PIXEL_UNKNOWN;
+}
+
#ifdef HAVE_X_SHM
static int create_shm_ximage(GP_Backend *self, GP_Size w, GP_Size h)
@@ -280,7 +316,6 @@ static int create_shm_ximage(GP_Backend *self, GP_Size w, GP_Size h)
if (self->context == NULL)
GP_DEBUG(1, "Using MIT SHM Extension");
-
win->img = XShmCreateImage(win->dpy, win->vis, win->scr_depth,
ZPixmap, NULL, &win->shminfo, w, h);
@@ -288,17 +323,14 @@ static int create_shm_ximage(GP_Backend *self, GP_Size w, GP_Size h)
GP_WARN("Failed to create SHM XImage");
return 1;
}
-
+
size_t size = win->img->bytes_per_line * win->img->height;
- pixel_type = GP_PixelRGBMatch(win->img->red_mask,
- win->img->green_mask,
- win->img->blue_mask,
- 0x0, win->img->bits_per_pixel);
+ pixel_type = match_pixel_type(win);
if (pixel_type == GP_PIXEL_UNKNOWN) {
GP_DEBUG(1, "Unknown pixel type");
- goto err0;
+ goto err0;
}
win->shminfo.shmid = shmget(IPC_PRIVATE, size, 0600);
@@ -307,7 +339,7 @@ static int create_shm_ximage(GP_Backend *self, GP_Size w, GP_Size h)
GP_WARN("Calling shmget() failed: %s", strerror(errno));
goto err0;
}
-
+
win->shminfo.shmaddr = win->img->data = shmat(win->shminfo.shmid, 0, 0);
if (win->shminfo.shmaddr == (void *)-1) {
@@ -321,7 +353,7 @@ static int create_shm_ximage(GP_Backend *self, GP_Size w, GP_Size h)
strerror(errno));
goto err2;
}
-
+
win->shminfo.readOnly = False;
if (XShmAttach(win->dpy, &win->shminfo) == False) {
@@ -351,34 +383,34 @@ err0:
static void destroy_shm_ximage(GP_Backend *self)
{
- struct x11_win *win = GP_BACKEND_PRIV(self);
+ struct x11_win *win = GP_BACKEND_PRIV(self);
XLockDisplay(win->dpy);
-
+
XShmDetach(win->dpy, &win->shminfo);
XFlush(win->dpy);
shmdt(win->shminfo.shmaddr);
XDestroyImage(win->img);
XFlush(win->dpy);
-
+
XUnlockDisplay(win->dpy);
}
static int resize_shm_ximage(GP_Backend *self, int w, int h)
{
- struct x11_win *win = GP_BACKEND_PRIV(self);
+ struct x11_win *win = GP_BACKEND_PRIV(self);
int ret;
-
+
GP_DEBUG(4, "Resizing XShmImage %ux%u -> %ux%u",
self->context->w, self->context->h, w, h);
-
+
XLockDisplay(win->dpy);
-
+
destroy_shm_ximage(self);
ret = create_shm_ximage(self, w, h);
-
+
XUnlockDisplay(win->dpy);
-
+
return ret;
}
@@ -406,7 +438,7 @@ static int resize_shm_ximage(GP_Backend GP_UNUSED(*self),
static int create_ximage(GP_Backend *self, GP_Size w, GP_Size h)
{
- struct x11_win *win = GP_BACKEND_PRIV(self);
+ struct x11_win *win = GP_BACKEND_PRIV(self);
enum GP_PixelType pixel_type;
int depth;
@@ -434,11 +466,8 @@ static int create_ximage(GP_Backend *self, GP_Size w, GP_Size h)
GP_DEBUG(1, "Failed to create XImage");
goto err0;
}
-
- pixel_type = GP_PixelRGBMatch(win->img->red_mask,
- win->img->green_mask,
- win->img->blue_mask,
- 0x0, win->img->bits_per_pixel);
+
+ pixel_type = match_pixel_type(win);
if (pixel_type == GP_PIXEL_UNKNOWN) {
GP_DEBUG(1, "Unknown pixel type");
@@ -455,7 +484,7 @@ static int create_ximage(GP_Backend *self, GP_Size w, GP_Size h)
win->shm_flag = 0;
win->img->data = (char*)self->context->pixels;
-
+
return 0;
err1:
XDestroyImage(win->img);
@@ -465,7 +494,7 @@ err0:
static void destroy_ximage(GP_Backend *self)
{
- struct x11_win *win = GP_BACKEND_PRIV(self);
+ struct x11_win *win = GP_BACKEND_PRIV(self);
GP_ContextFree(self->context);
win->img->data = NULL;
@@ -474,7 +503,7 @@ static void destroy_ximage(GP_Backend *self)
static int resize_ximage(GP_Backend *self, int w, int h)
{
- struct x11_win *win = GP_BACKEND_PRIV(self);
+ struct x11_win *win = GP_BACKEND_PRIV(self);
XImage *img;
/* Create new X image */
@@ -505,8 +534,8 @@ static int resize_ximage(GP_Backend *self, int w, int h)
static void window_close(GP_Backend *self)
{
- struct x11_win *win = GP_BACKEND_PRIV(self);
-
+ struct x11_win *win = GP_BACKEND_PRIV(self);
+
XLockDisplay(win->dpy);
if (win->shm_flag)
@@ -539,7 +568,7 @@ GP_Backend *GP_BackendX11Init(const char *display, int x, int y,
if (backend == NULL)
return NULL;
-
+
win = GP_BACKEND_PRIV(backend);
//XSynchronize(win->dpy, True);
@@ -566,10 +595,10 @@ GP_Backend *GP_BackendX11Init(const char *display, int x, int y,
if (flags & GP_X11_FULLSCREEN)
x11_win_fullscreen(win, 1);
-
+
/* Init the event queue, once we know the window size */
GP_EventQueueInit(&backend->event_queue, wreq.w, wreq.h, 0);
-
+
backend->context = NULL;
if ((flags & GP_X11_DISABLE_SHM) || create_shm_ximage(backend, w, h))
@@ -577,7 +606,7 @@ GP_Backend *GP_BackendX11Init(const char *display, int x, int y,
goto err1;
XFlush(win->dpy);
-
+
win->resized_flag = 0;
backend->name = "X11";
@@ -600,7 +629,7 @@ err1:
void GP_BackendX11RequestFullscreen(GP_Backend *self, int mode)
{
struct x11_win *win = GP_BACKEND_PRIV(self);
-
+
x11_win_fullscreen(win, mode);
}
-----------------------------------------------------------------------
Summary of changes:
libs/backends/GP_X11.c | 119 ++++++++++++++++++++++++++++++------------------
1 files changed, 74 insertions(+), 45 deletions(-)
repo.or.cz automatic notification. Contact project admin jiri.bluebear.dluhos(a)gmail.com
if you want to unsubscribe, or site admin admin(a)repo.or.cz if you receive
no reply.
--
gfxprim.git ("A simple 2D graphics library with emphasis on correctness and well-defined operation.")
1
0
[repo.or.cz] gfxprim.git branch master updated: 7a70f93fbae16a2ff97c983e8c32968efabdaa0a
by metan 03 May '13
by metan 03 May '13
03 May '13
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 7a70f93fbae16a2ff97c983e8c32968efabdaa0a (commit)
from de060ec35891593790612d5492f50c29c63b6248 (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/7a70f93fbae16a2ff97c983e8c32968efabd…
commit 7a70f93fbae16a2ff97c983e8c32968efabdaa0a
Author: Cyril Hrubis <metan(a)ucw.cz>
Date: Fri May 3 15:31:29 2013 +0200
backends: X11: Fix XImage pixel matching.
Signed-off-by: Cyril Hrubis <metan(a)ucw.cz>
diff --git a/libs/backends/GP_X11.c b/libs/backends/GP_X11.c
index 0ef7512..79b65c6 100644
--- a/libs/backends/GP_X11.c
+++ b/libs/backends/GP_X11.c
@@ -264,30 +264,12 @@ static int x11_resize_ack(struct GP_Backend *self)
return ret;
}
-static void match_pixel_type(struct x11_win *win,
- enum GP_PixelType *pixel_type, int *depth)
-{
- /*
- * Eh, the XImage supports either 8, 16 or 32 bit pixels
- *
- * Do best effor on selecting appropriate pixel type
- */
- for (*depth = 8; *depth <= 32; *depth<<=1) {
- *pixel_type = GP_PixelRGBMatch(win->vis->red_mask,
- win->vis->green_mask,
- win->vis->blue_mask,
- 0x0, *depth);
-
- if (*pixel_type != GP_PIXEL_UNKNOWN)
- break;
- }
-}
-
#ifdef HAVE_X_SHM
static int create_shm_ximage(GP_Backend *self, GP_Size w, GP_Size h)
{
struct x11_win *win = GP_BACKEND_PRIV(self);
+ enum GP_PixelType pixel_type;
if (XShmQueryExtension(win->dpy) == False) {
GP_DEBUG(1, "MIT SHM Extension not supported, "
@@ -298,18 +280,6 @@ static int create_shm_ximage(GP_Backend *self, GP_Size w, GP_Size h)
if (self->context == NULL)
GP_DEBUG(1, "Using MIT SHM Extension");
- enum GP_PixelType pixel_type;
- int depth;
-
- if (self->context == NULL)
- match_pixel_type(win, &pixel_type, &depth);
- else
- pixel_type = self->context->pixel_type;
-
- if (pixel_type == GP_PIXEL_UNKNOWN) {
- GP_DEBUG(1, "Unknown pixel type");
- return 1;
- }
win->img = XShmCreateImage(win->dpy, win->vis, win->scr_depth,
ZPixmap, NULL, &win->shminfo, w, h);
@@ -321,6 +291,16 @@ static int create_shm_ximage(GP_Backend *self, GP_Size w, GP_Size h)
size_t size = win->img->bytes_per_line * win->img->height;
+ pixel_type = GP_PixelRGBMatch(win->img->red_mask,
+ win->img->green_mask,
+ win->img->blue_mask,
+ 0x0, win->img->bits_per_pixel);
+
+ if (pixel_type == GP_PIXEL_UNKNOWN) {
+ GP_DEBUG(1, "Unknown pixel type");
+ goto err0;
+ }
+
win->shminfo.shmid = shmget(IPC_PRIVATE, size, 0600);
if (win->shminfo.shmid == -1) {
@@ -430,25 +410,46 @@ static int create_ximage(GP_Backend *self, GP_Size w, GP_Size h)
enum GP_PixelType pixel_type;
int depth;
- match_pixel_type(win, &pixel_type, &depth);
-
- if (pixel_type == GP_PIXEL_UNKNOWN) {
- GP_DEBUG(1, "Unknown pixel type");
- return 1;
+ /* Get depth similiar to the default visual depth */
+ switch (win->scr_depth) {
+ case 32:
+ case 24:
+ depth = 32;
+ case 16:
+ depth = 16;
+ case 8:
+ depth = 8;
+ default:
+ /* TODO: better default */
+ depth = 32;
}
- self->context = GP_ContextAlloc(w, h, pixel_type);
-
- if (self->context == NULL)
- return 1;
+ GP_DEBUG(1, "Screen depth %i, using XImage depth %i",
+ win->scr_depth, depth);
win->img = XCreateImage(win->dpy, win->vis, win->scr_depth, ZPixmap, 0,
NULL, w, h, depth, 0);
if (win->img == NULL) {
GP_DEBUG(1, "Failed to create XImage");
- GP_ContextFree(self->context);
- return 1;
+ goto err0;
+ }
+
+ pixel_type = GP_PixelRGBMatch(win->img->red_mask,
+ win->img->green_mask,
+ win->img->blue_mask,
+ 0x0, win->img->bits_per_pixel);
+
+ if (pixel_type == GP_PIXEL_UNKNOWN) {
+ GP_DEBUG(1, "Unknown pixel type");
+ goto err1;
+ }
+
+ self->context = GP_ContextAlloc(w, h, pixel_type);
+
+ if (self->context == NULL) {
+ GP_DEBUG(1, "Malloc failed :(");
+ goto err1;
}
win->shm_flag = 0;
@@ -456,6 +457,10 @@ static int create_ximage(GP_Backend *self, GP_Size w, GP_Size h)
win->img->data = (char*)self->context->pixels;
return 0;
+err1:
+ XDestroyImage(win->img);
+err0:
+ return 1;
}
static void destroy_ximage(GP_Backend *self)
-----------------------------------------------------------------------
Summary of changes:
libs/backends/GP_X11.c | 89 +++++++++++++++++++++++++----------------------
1 files changed, 47 insertions(+), 42 deletions(-)
repo.or.cz automatic notification. Contact project admin jiri.bluebear.dluhos(a)gmail.com
if you want to unsubscribe, or site admin admin(a)repo.or.cz if you receive
no reply.
--
gfxprim.git ("A simple 2D graphics library with emphasis on correctness and well-defined operation.")
1
0
[repo.or.cz] gfxprim.git branch master updated: de060ec35891593790612d5492f50c29c63b6248
by metan 03 May '13
by metan 03 May '13
03 May '13
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 de060ec35891593790612d5492f50c29c63b6248 (commit)
via f7b1bfa7d24c44f3e03e6d3e8f20fe5d839964bd (commit)
via 0dcd3ddb50bb7ee9fab8ed8b4a21bb9a909d4940 (commit)
via 2b791b83c7976635a33543e76e1259c5dfb6454c (commit)
from 0e5b7fc4ac8116f1037a244c21159e5fd86f114f (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/de060ec35891593790612d5492f50c29c63b…
commit de060ec35891593790612d5492f50c29c63b6248
Author: Cyril Hrubis <metan(a)ucw.cz>
Date: Fri May 3 14:05:28 2013 +0200
build: Fix linker ordering and build.
* Loaders are now in separate so library
* Linker flags order is fixed and missing
flags are added.
This should fix build on Ubuntu.
DON'T FORGET TO RUN ./cofigure BEFORE make
Signed-off-by: Cyril Hrubis <metan(a)ucw.cz>
diff --git a/app.mk b/app.mk
index 77bd5e7..ccfdef1 100644
--- a/app.mk
+++ b/app.mk
@@ -1,12 +1,10 @@
-LDLIBS+=-lm
-
ALL+=$(APPS)
CLEAN+=$(APPS)
%: %.o
ifdef VERBOSE
- $(CC) $(CFLAGS) $(LDFLAGS) -Wl,--start-group $^ $(LDLIBS) -Wl,--end-group -o $@
+ $(CC) $(CFLAGS) $(LDFLAGS) -Wl,--start-group $^ $(LDLIBS) $(LDLIBS_GP) -Wl,--end-group -o $@
else
@echo "LD $@"
- @$(CC) $(CFLAGS) $(LDFLAGS) -Wl,--start-group $^ $(LDLIBS) -Wl,--end-group -o $@
+ @$(CC) $(CFLAGS) $(LDFLAGS) -Wl,--start-group $^ $(LDLIBS) $(LDLIBS_GP) -Wl,--end-group -o $@
endif
diff --git a/build/get_objs.sh b/build/get_objs.sh
index 3519b01..b6f1be5 100755
--- a/build/get_objs.sh
+++ b/build/get_objs.sh
@@ -1,7 +1,7 @@
#!/bin/sh
TOPDIR=..
-LIBDIRS="core gfx text loaders filters input"
+LIBDIRS="core gfx text filters input"
for i in $LIBDIRS; do
OBJECTS=`echo $TOPDIR/libs/$i/*.o`;
diff --git a/config.mk b/config.mk
index c149a0c..4a103d7 100644
--- a/config.mk
+++ b/config.mk
@@ -1,6 +1,7 @@
include $(TOPDIR)/config.gen.mk
CFLAGS+=-I$(TOPDIR)/include/
+LDFLAGS+=-L$(TOPDIR)/build/
# path to local module directory
PYLIBSDIR=$(TOPDIR)/pylib
@@ -16,3 +17,9 @@ endif
PYTHON=PYTHONPATH=$$PYTHONPATH:${PYLIBSDIR} ${PYTHON_BIN} -Werror
SWIGOPTS=-w322,314 -I/usr/include/
+
+# Linker flags
+LDLIBS_GP=$(shell $(TOPDIR)/gfxprim-config --libs)
+LDLIBS_LOADERS=$(shell $(TOPDIR)/gfxprim-config --libs-loaders)
+LDLIBS_BACKENDS=$(shell $(TOPDIR)/gfxprim-config --libs-backends)
+LDLIBS_GRABBERS=$(shell $(TOPDIR)/gfxprim-config --libs-grabbers)
diff --git a/configure b/configure
index 9deeb6c..894664f 100755
--- a/configure
+++ b/configure
@@ -160,7 +160,7 @@ class libraries:
f.write("# %s - %sn" % (i[0], i[1]))
if self.results[i[0]]:
f.write("HAVE_%s=yesn" % i[0].upper())
- f.write("CFLAGS+=%snLDLIBS+=%sn" % (i[3], i[4]))
+ # f.write("CFLAGS+=%snLDLIBS+=%sn" % (i[3], i[4]))
else:
f.write("HAVE_%s=non" % i[0].upper())
@@ -240,20 +240,20 @@ def write_gfxprim_config(cfg, libs):
f = open('gfxprim-config', 'w')
f.write('#!/bin/shn'
'#n# Generated by configure, do not edit directlyn#nn'
- 'USAGE="Usage: $0 --list-modules --cflags --libs --libs-module_foo"n'
- 'nif test $# -eq 0; thenn'
- 'techo "$USAGE"n'
- 'texit 1n'
- 'finn'
- 'while test -n "$1"; don'
- 'tcase "$1" inn')
+ 'USAGE="Usage: $0 --list-modules --cflags --libs --libs-module_foo"n'
+ 'nif test $# -eq 0; thenn'
+ 'techo "$USAGE"n'
+ 'texit 1n'
+ 'finn'
+ 'while test -n "$1"; don'
+ 'tcase "$1" inn')
# General switches cflags and ldflags
f.write('t--help) echo "$USAGE"; exit 0;;n')
f.write('t--list-modules) echo "%s"; exit 0;;n' % ' '.join(modules))
f.write('t--cflags) echo -n "-I/usr/include/GP/%s";;n' %
libs.get_cflags('core'))
- f.write('t--libs) echo -n "-lGP %s ";;n' % libs.get_linker_flags('core'))
+ f.write('t--libs) echo -n "-lGP -lm %s ";;n' % libs.get_linker_flags('core'))
# ldflags for specific modules
for i in modules:
@@ -262,6 +262,8 @@ def write_gfxprim_config(cfg, libs):
ldflags += '-lGP_backends '
if i == 'grabbers':
ldflags += '-lGP_grabbers '
+ if i == 'loaders':
+ ldflags += '-lGP_loaders '
ldflags += libs.get_linker_flags(i)
f.write('t--libs-%s) echo -n "%s ";;n' % (i, ldflags))
diff --git a/demos/bogoman/Makefile b/demos/bogoman/Makefile
index e90de8e..83d156e 100644
--- a/demos/bogoman/Makefile
+++ b/demos/bogoman/Makefile
@@ -3,8 +3,7 @@ TOPDIR=../..
CSOURCES=$(shell echo *.c)
INCLUDE=
-LDFLAGS+=-L$(TOPDIR)/build/
-LDLIBS+=`$(TOPDIR)/gfxprim-config --libs --libs-backends`
+LDLIBS+=$(LDLIBS_BACKENDS)
APPS=bogoman
diff --git a/demos/c_simple/Makefile b/demos/c_simple/Makefile
index b4a24d2..3ef9ff7 100644
--- a/demos/c_simple/Makefile
+++ b/demos/c_simple/Makefile
@@ -11,8 +11,7 @@ CSOURCES=$(SOURCES)
endif
INCLUDE=
-LDFLAGS+=-L$(TOPDIR)/build/
-LDLIBS+=-lrt `$(TOPDIR)/gfxprim-config --libs --libs-backends`
+LDLIBS+=-lrt
APPS=backend_example loaders_example loaders filters_symmetry gfx_koch virtual_backend_example meta_data meta_data_dump tmp_file showimage@@ -23,10 +22,38 @@ APPS=backend_example loaders_example loaders filters_symmetry gfx_koch
ifeq ($(HAVE_LIBSDL),yes)
APPS+=SDL_glue
+
+SDL_glue: LDLIBS+=$(LDLIBS_BACKENDS)
endif
-v4l2_show: LDLIBS+=-lGP_grabbers
-v4l2_grab: LDLIBS+=-lGP_grabbers
+showimage: LDLIBS+=$(LDLIBS_BACKENDS) $(LDLIBS_LOADERS)
+backend_example: LDLIBS+=$(LDLIBS_BACKENDS)
+virtual_backend_example: LDLIBS+=$(LDLIBS_BACKENDS)
+loaders_example: LDLIBS+=$(LDLIBS_LOADERS)
+loaders: LDLIBS+=$(LDLIBS_LOADERS)
+tmp_file: LDLIBS+=$(LDLIBS_LOADERS)
+filters_symmetry: LDLIBS+=$(LDLIBS_LOADERS)
+gfx_koch: LDLIBS+=$(LDLIBS_LOADERS)
+meta_data: LDLIBS+=$(LDLIBS_LOADERS)
+meta_data_dump: LDLIBS+=$(LDLIBS_LOADERS)
+v4l2_show: LDLIBS+=$(LDLIBS_GRABBERS) $(LDLIBS_BACKENDS)
+v4l2_grab: LDLIBS+=$(LDLIBS_GRABBERS) $(LDLIBS_LOADERS)
+convolution: LDLIBS+=$(LDLIBS_LOADERS)
+weighted_median: LDLIBS+=$(LDLIBS_LOADERS)
+shapetest: LDLIBS+=$(LDLIBS_BACKENDS)
+koch: LDLIBS+=$(LDLIBS_BACKENDS)
+input_example: LDLIBS+=$(LDLIBS_BACKENDS)
+fileview: LDLIBS+=$(LDLIBS_BACKENDS)
+linetest: LDLIBS+=$(LDLIBS_BACKENDS)
+randomshapetest: LDLIBS+=$(LDLIBS_BACKENDS)
+fonttest: LDLIBS+=$(LDLIBS_BACKENDS)
+textaligntest: LDLIBS+=$(LDLIBS_BACKENDS)
+loaders_register: LDLIBS+=$(LDLIBS_LOADERS)
+gaussian_noise: LDLIBS+=$(LDLIBS_LOADERS)
+byte_utils: LDLIBS+=$(LDLIBS_LOADERS)
+blittest: LDLIBS+=$(LDLIBS_BACKENDS) $(LDLIBS_LOADERS)
+sin_AA: LDLIBS+=$(LDLIBS_BACKENDS)
+x11_windows: LDLIBS+=$(LDLIBS_BACKENDS)
include $(TOPDIR)/app.mk
include $(TOPDIR)/post.mk
diff --git a/demos/grinder/Makefile b/demos/grinder/Makefile
index 4df5ea8..80e31e2 100644
--- a/demos/grinder/Makefile
+++ b/demos/grinder/Makefile
@@ -1,15 +1,15 @@
TOPDIR=../..
+include $(TOPDIR)/pre.mk
CSOURCES=$(shell echo *.c)
-
INCLUDE=core gfx
-LDFLAGS+=-L$(TOPDIR)/build/
-LDLIBS+=$(shell $(TOPDIR)/gfxprim-config --libs --libs-backends) -lrt
+
+LDLIBS+=-lrt -lm
+LDLIBS+=$(LDLIBS_LOADERS)
APPS=grinder
grinder: params.o histogram.o
-include $(TOPDIR)/pre.mk
include $(TOPDIR)/app.mk
include $(TOPDIR)/post.mk
diff --git a/demos/spiv/Makefile b/demos/spiv/Makefile
index 95e7560..c6747d2 100644
--- a/demos/spiv/Makefile
+++ b/demos/spiv/Makefile
@@ -4,7 +4,9 @@ CSOURCES=$(shell echo *.c)
INCLUDE=
LDFLAGS+=-L$(TOPDIR)/build/
-LDLIBS+=-lrt `$(TOPDIR)/gfxprim-config --libs --libs-backends`
+LDLIBS+=-lrt
+
+LDLIBS+=$(LDLIBS_LOADERS) $(LDLIBS_BACKENDS)
APPS=spiv
diff --git a/demos/ttf2img/Makefile b/demos/ttf2img/Makefile
index aab67a7..5fa8100 100644
--- a/demos/ttf2img/Makefile
+++ b/demos/ttf2img/Makefile
@@ -3,7 +3,8 @@ TOPDIR=../..
CSOURCES=$(shell echo *.c)
INCLUDE=
-LDLIBS+=-lGP -L$(TOPDIR)/build/
+LDLIBS+=-lm
+LDLIBS+=$(LDLIBS_LOADERS)
APPS=ttf2img
diff --git a/libs/loaders/Makefile b/libs/loaders/Makefile
index 076b940..5dc0799 100644
--- a/libs/loaders/Makefile
+++ b/libs/loaders/Makefile
@@ -4,6 +4,7 @@ include $(TOPDIR)/pre.mk
CSOURCES=$(shell ls *.c)
INCLUDE=core
LIBNAME=loaders
+BUILDLIB=yes
include $(TOPDIR)/lib.mk
include $(TOPDIR)/post.mk
diff --git a/pylib/gfxprim/backends/Makefile b/pylib/gfxprim/backends/Makefile
index fd62f34..320165e 100644
--- a/pylib/gfxprim/backends/Makefile
+++ b/pylib/gfxprim/backends/Makefile
@@ -2,10 +2,10 @@ TOPDIR=../../..
LIBNAME=backends
INCLUDE=core
-LDFLAGS+=$(shell $(TOPDIR)/gfxprim-config --libs-backends)
-
include $(TOPDIR)/pre.mk
+LDLIBS+=$(LDLIBS_BACKENDS)
+
INSTALL_FILES+=_extend_backend.py
include $(TOPDIR)/pywrap.mk
diff --git a/pylib/gfxprim/grabbers/Makefile b/pylib/gfxprim/grabbers/Makefile
index b001822..c864378 100644
--- a/pylib/gfxprim/grabbers/Makefile
+++ b/pylib/gfxprim/grabbers/Makefile
@@ -2,9 +2,10 @@ TOPDIR=../../..
LIBNAME=grabbers
INCLUDE=core
-LDFLAGS+=$(shell $(TOPDIR)/gfxprim-config --libs-grabbers)
-
include $(TOPDIR)/pre.mk
+
+LDLIBS+=$(LDLIBS_GRABBERS)
+
include $(TOPDIR)/pywrap.mk
include $(TOPDIR)/post.mk
diff --git a/pylib/gfxprim/loaders/Makefile b/pylib/gfxprim/loaders/Makefile
index dd23e98..883a266 100644
--- a/pylib/gfxprim/loaders/Makefile
+++ b/pylib/gfxprim/loaders/Makefile
@@ -3,6 +3,9 @@ LIBNAME=loaders
INCLUDE=core
include $(TOPDIR)/pre.mk
+
+LDLIBS+=$(LDLIBS_LOADERS)
+
include $(TOPDIR)/pywrap.mk
$(SWIG_C): ../common.i
diff --git a/pywrap.mk b/pywrap.mk
index 9b4fcba..70bc835 100644
--- a/pywrap.mk
+++ b/pywrap.mk
@@ -32,10 +32,10 @@ endif # VERBOSE
$(SWIG_LIB): $(SWIG_C)
ifdef VERBOSE
- $(CC) $< $(CFLAGS) -D_GNU_SOURCE=1 $(LDFLAGS) $(PYTHON_INCLUDE) --shared -lGP $(LDLIBS) -L$(TOPDIR)/build/ -o $@
+ $(CC) $< $(CFLAGS) -D_GNU_SOURCE=1 $(LDFLAGS) $(PYTHON_INCLUDE) --shared $(LDLIBS_GP) $(LDLIBS) -L$(TOPDIR)/build/ -o $@
else # VERBOSE
@echo "LD $@"
- @$(CC) $< $(CFLAGS) -D_GNU_SOURCE=1 $(LDFLAGS) $(PYTHON_INCLUDE) --shared -lGP $(LDLIBS) -L$(TOPDIR)/build/ -o $@
+ @$(CC) $< $(CFLAGS) -D_GNU_SOURCE=1 $(LDFLAGS) $(PYTHON_INCLUDE) --shared $(LDLIBS_GP) $(LDLIBS) -L$(TOPDIR)/build/ -o $@
endif # VERBOSE
# Install python libraries into right places
diff --git a/tests/Makefile b/tests/Makefile
index 71b1004..6eb167d 100644
--- a/tests/Makefile
+++ b/tests/Makefile
@@ -1,7 +1,7 @@
TOPDIR=..
include $(TOPDIR)/pre.mk
-SUBDIRS=core drivers framework loaders gfx filters
+SUBDIRS=core framework loaders gfx filters
loaders: framework
gfx: framework
diff --git a/tests/framework/Makefile b/tests/framework/Makefile
index 44ed5e1..bc04fc1 100644
--- a/tests/framework/Makefile
+++ b/tests/framework/Makefile
@@ -5,7 +5,7 @@ CSOURCES=$(shell echo *.c)
INCLUDE=
LDFLAGS+=-L.
-LDLIBS+=-ltst_preload -ldl -ltst -lrt
+LDLIBS+=-ltst_preload -lm -ldl -ltst -lrt
CFLAGS+=
test: libtst.a
http://repo.or.cz/w/gfxprim.git/commit/f7b1bfa7d24c44f3e03e6d3e8f20fe5d8399…
commit f7b1bfa7d24c44f3e03e6d3e8f20fe5d839964bd
Author: Cyril Hrubis <metan(a)ucw.cz>
Date: Fri May 3 13:29:21 2013 +0200
backends,input: Move Input drivers to backends.
* These require linking against corresponding libraries
and belong to the backends anyway.
Signed-off-by: Cyril Hrubis <metan(a)ucw.cz>
diff --git a/libs/input/GP_InputDriverSDL.c b/libs/backends/GP_InputDriverSDL.c
similarity index 99%
rename from libs/input/GP_InputDriverSDL.c
rename to libs/backends/GP_InputDriverSDL.c
index aa3176b..d94272d 100644
--- a/libs/input/GP_InputDriverSDL.c
+++ b/libs/backends/GP_InputDriverSDL.c
@@ -28,7 +28,7 @@
#include "core/GP_Debug.h"
#include "input/GP_EventQueue.h"
-#include "input/GP_InputDriverSDL.h"
+#include "GP_InputDriverSDL.h"
/* SDL ascii mapped keys */
static uint16_t keysym_table1[] = {
diff --git a/include/input/GP_InputDriverSDL.h b/libs/backends/GP_InputDriverSDL.h
similarity index 100%
rename from include/input/GP_InputDriverSDL.h
rename to libs/backends/GP_InputDriverSDL.h
diff --git a/libs/input/GP_InputDriverX11.c b/libs/backends/GP_InputDriverX11.c
similarity index 100%
rename from libs/input/GP_InputDriverX11.c
rename to libs/backends/GP_InputDriverX11.c
diff --git a/include/input/GP_InputDriverX11.h b/libs/backends/GP_InputDriverX11.h
similarity index 100%
rename from include/input/GP_InputDriverX11.h
rename to libs/backends/GP_InputDriverX11.h
diff --git a/libs/backends/GP_SDL.c b/libs/backends/GP_SDL.c
index a4599ac..4dcfeb3 100644
--- a/libs/backends/GP_SDL.c
+++ b/libs/backends/GP_SDL.c
@@ -29,8 +29,8 @@
#ifdef HAVE_LIBSDL
-#include "input/GP_InputDriverSDL.h"
#include "input/GP_Input.h"
+#include "GP_InputDriverSDL.h"
#include "GP_Backend.h"
#include "GP_SDL.h"
diff --git a/libs/backends/GP_X11.c b/libs/backends/GP_X11.c
index c81f0dd..0ef7512 100644
--- a/libs/backends/GP_X11.c
+++ b/libs/backends/GP_X11.c
@@ -41,7 +41,7 @@
#include <X11/extensions/XShm.h>
#endif /* HAVE_X_SHM */
-#include "input/GP_InputDriverX11.h"
+#include "GP_InputDriverX11.h"
#include "backends/GP_X11.h"
http://repo.or.cz/w/gfxprim.git/commit/0dcd3ddb50bb7ee9fab8ed8b4a21bb9a909d…
commit 0dcd3ddb50bb7ee9fab8ed8b4a21bb9a909d4940
Author: Cyril Hrubis <metan(a)ucw.cz>
Date: Fri May 3 13:23:12 2013 +0200
demos: c_simple: Fix segfault when x11 not compiled in
* This fixes segfault when we are not able to initialize X11 backend.
* Also changes GP_BackendExit() to be no-op for NULL pointer.
Signed-off-by: Cyril Hrubis <metan(a)ucw.cz>
diff --git a/demos/c_simple/x11_windows.c b/demos/c_simple/x11_windows.c
index 2c77075..7ed43e4 100644
--- a/demos/c_simple/x11_windows.c
+++ b/demos/c_simple/x11_windows.c
@@ -89,6 +89,12 @@ int main(void)
win_1 = GP_BackendX11Init(NULL, 0, 0, 300, 300, "win 1", 0);
win_2 = GP_BackendX11Init(NULL, 0, 0, 300, 300, "win 2", 0);
+ if (win_1 == NULL || win_2 == NULL) {
+ GP_BackendExit(win_1);
+ GP_BackendExit(win_2);
+ return 1;
+ }
+
/* Update the backend screen */
redraw(win_1->context);
redraw(win_2->context);
diff --git a/include/backends/GP_Backend.h b/include/backends/GP_Backend.h
index 02c5b29..712f156 100644
--- a/include/backends/GP_Backend.h
+++ b/include/backends/GP_Backend.h
@@ -173,7 +173,8 @@ static inline void GP_BackendUpdateRectXYWH(GP_Backend *backend,
*/
static inline void GP_BackendExit(GP_Backend *backend)
{
- backend->Exit(backend);
+ if (backend)
+ backend->Exit(backend);
}
/*
http://repo.or.cz/w/gfxprim.git/commit/2b791b83c7976635a33543e76e1259c5dfb6…
commit 2b791b83c7976635a33543e76e1259c5dfb6454c
Author: Cyril Hrubis <metan(a)ucw.cz>
Date: Fri May 3 14:17:10 2013 +0200
doc: Update compilation & installation docs.
Signed-off-by: Cyril Hrubis <metan(a)ucw.cz>
diff --git a/doc/compilation.txt b/doc/compilation.txt
index cb025e0..1ae82f6 100644
--- a/doc/compilation.txt
+++ b/doc/compilation.txt
@@ -39,7 +39,7 @@ Compilation
~~~~~~~~~~~
Once devel packages are installed the compilation is as simple as running
-'configure' and 'make'.
++configure+ and +make+.
NOTE: The 'configure' script is written in 'Python'.
@@ -60,18 +60,21 @@ TIP: GFXprim supports proper parallel build, you most likely want to add
gfxprim # make install
-------------------------------------------------------------------------------
-The 'make install' command will install GFXprim libraries and devel headers
-into your system. Python bindings are not installable at the moment.
+The +make install+ command will install GFXprim libraries and devel headers
+into your system.
-OpenSUSE
-~~~~~~~~
+OpenSUSE & Fedora
+~~~~~~~~~~~~~~~~~
Instruction to install required packages on
link:http://www.opensuse.org/[OpenSUSE].
+Works for link:http://www.fedoraproject.org/[Fedora] too if you substitute
++zypper in+ with +yum install+.
+
.Install basic tools
-------------------------------------------------------------------------------
-zypper in gcc make python-Jinja2
+zypper in gcc make python-jinja2
-------------------------------------------------------------------------------
.Install jpeg and png devel libraries
-----------------------------------------------------------------------
Summary of changes:
app.mk | 6 +--
build/get_objs.sh | 2 +-
config.mk | 7 ++++
configure | 20 ++++++-----
demos/bogoman/Makefile | 3 +-
demos/c_simple/Makefile | 35 +++++++++++++++++--
demos/c_simple/x11_windows.c | 6 +++
demos/grinder/Makefile | 8 ++--
demos/spiv/Makefile | 4 ++-
demos/ttf2img/Makefile | 3 +-
doc/compilation.txt | 15 +++++---
include/backends/GP_Backend.h | 3 +-
libs/{input => backends}/GP_InputDriverSDL.c | 2 +-
.../input => libs/backends}/GP_InputDriverSDL.h | 0
libs/{input => backends}/GP_InputDriverX11.c | 0
.../input => libs/backends}/GP_InputDriverX11.h | 0
libs/backends/GP_SDL.c | 2 +-
libs/backends/GP_X11.c | 2 +-
libs/loaders/Makefile | 1 +
pylib/gfxprim/backends/Makefile | 4 +-
pylib/gfxprim/grabbers/Makefile | 5 ++-
pylib/gfxprim/loaders/Makefile | 3 ++
pywrap.mk | 4 +-
tests/Makefile | 2 +-
tests/framework/Makefile | 2 +-
25 files changed, 95 insertions(+), 44 deletions(-)
rename libs/{input => backends}/GP_InputDriverSDL.c (99%)
rename {include/input => libs/backends}/GP_InputDriverSDL.h (100%)
rename libs/{input => backends}/GP_InputDriverX11.c (100%)
rename {include/input => libs/backends}/GP_InputDriverX11.h (100%)
repo.or.cz automatic notification. Contact project admin jiri.bluebear.dluhos(a)gmail.com
if you want to unsubscribe, or site admin admin(a)repo.or.cz if you receive
no reply.
--
gfxprim.git ("A simple 2D graphics library with emphasis on correctness and well-defined operation.")
1
0