2008-04-25 Øyvind Kolås * clutter/eglnative/clutter-backend-egl.c: (clutter_egl_display): removed platform specific build hack rpl_malloc and rpl_free wrappers. * clutter/eglnative/clutter-backend-egl.h: * clutter/eglnative/clutter-egl.h: * clutter/eglnative/clutter-stage-egl.h: removed platform specific extra includes from eglnative. 2008-04-25 Øyvind Kolås * tests/test-pixmap.c: (main): only compile this test if HAVE_CLUTTER_GLX is defined. 2008-04-25 Øyvind Kolås Merged back changes from the fruity flavour into the original native flavour. Changes for dealing with multiple stages. * clutter/eglnative/clutter-backend-egl.c: * clutter/eglnative/clutter-backend-egl.h: * clutter/eglnative/clutter-egl.h: * clutter/eglnative/clutter-stage-egl.c: * clutter/eglnative/clutter-stage-egl.h: 2008-04-25 Neil Roberts * clutter/cogl/cogl.h.in: Tiny fix to gtk-doc for cogl_fog.set 2008-04-25 Neil Roberts * clutter/cogl/gles/cogl-texture.c (cogl_texture_polygon): * clutter/cogl/gl/cogl-texture.c (cogl_texture_polygon): Added a warning if the call will fail. * clutter/cogl/cogl.h.in: Added a note in the gtk-doc about not supporting repeated textures in cogl_texture_polygon. 2008-04-24 Øyvind Kolås * configure.ac: added fruity backend. * clutter/clutter-main.c: (clutter_main): special case invoking main() for the fruity backend. * clutter/clutter-stage.c: (clutter_stage_set_title): do not call the set_title vfunc if no implementation exist in the interface. * clutter/fruity/Makefile.am: * clutter/fruity/clutter-backend-fruity.c: * clutter/fruity/clutter-backend-fruity.h: * clutter/fruity/clutter-fruity.c: * clutter/fruity/clutter-fruity.h: * clutter/fruity/clutter-stage-fruity.c: * clutter/fruity/clutter-stage-fruity.h: added fruity backend. 2008-04-24 Matthew Allum * clutter/clutter-texture.c: Add a 'disable-slicing' property. 2008-04-24 Ivan Leben * clutter/clutter-feature.c: (_clutter_features_from_cogl:) oops, forgot to return. 2008-04-24 Ivan Leben * clutter/clutter-feature.c: Map cogl to clutter features before or-ing with clutter flags obtained from backend. * clutter/cogl/cogl.h.in: Removed SYNC_TO_VBLANK from cogl feature flags, since its only checked on clutter level. Renumbered flags in ascending order. * clutter/cogl/gles/cogl.c: (_cogl_features_init:) Adds COGL_FEATURE_TEXTURE_READ_PIXELS flag to features. 2008-04-24 Neil Roberts * clutter/cogl/cogl.h.in: Documented remaining functions up to the texture API except cogl_check_extension, cogl_perspective and cogl_alpha_func. 2008-04-24 Neil Roberts * clutter/clutter-texture.c (struct _ClutterTexturePrivate): Make max_tile_waste signed. (clutter_texture_class_init): Fix documentation for tile-waste property. (clutter_texture_get_cogl_texture), (clutter_texture_set_cogl_texture): Added 'since' to the gtk-doc. (clutter_texture_set_max_tile_waste): Make the max_tile_waste parameter signed and fix the documentation. (clutter_texture_get_max_tile_waste): Make the return value signed and fix the documentation. * clutter/clutter-texture.h: Fix type for {get,set}_max_tile_waste. * clutter/clutter-sections.txt: Added clutter_texture_{get,set}_max_tile_waste and clutter_texture_set_cogl_texture. 2008-04-24 Ivan Leben * clutter/cogl/cogl.h.in: * clutter/cogl/gl/(es)/cogl-texture.c: cogl_texture_get_max_waste returns gint instead of guint. 2008-04-24 Ivan Leben * clutter/cogl/cogl.h.in: Texture *_new_* functions max_waste argument changed to signed integer. * clutter/cogl/gl(es)/cogl-texture.c: (_cogl_texture_slices_create:) Returns FALSE if max_waste is -1 and size of initial slice is not supported. (_cogl_texture_slices_free:) Fixed so that slice_gl_handles array is freed when texture created from foreign. (_cogl_texture_free:) New function - calls other *_free functions to simplify destruction. (*_new_* functions): max_waste signed, fixed handling of failed texture construction so that the resources allocated so far are actually freed before bailing out. 2008-04-24 Neil Roberts * clutter/cogl/cogl.h.in (cogl_scale): Fixed name of the y parameter. 2008-04-24 Robert Bragg * clutter/eglx/clutter-stage-egl.c * clutter/cogl/gl/cogl-texture.c * clutter/cogl/gles/cogl-texture.c * tests/test-pixmap.c: Minor tidy up of some allocations: s/malloc/g_malloc and s/free/g_free (except I left cogl/common/stb_image.c untouched) These had been causing some cross compile issues for me. 2008-04-24 Ivan Leben * clutter/cogl/gl(es)/cogl-texture.c: (cogl_texture_is_sliced, cogl_texture_get_gl_texture:) Fixed a copy-paste typo. Thanks to Matthew Allum for spotting. 2008-04-24 Ivan Leben * clutter/cogl/cogl.h.in: Changed flags in CoglTargetBuffer enum to occupy separate bits so COGL_WINDOW_BUFFER and COGL_MASK_BUFFER can be or-ed together. * clutter/cogl/gl(es)/cogl-fbo.c: (cogl_draw_buffer:) handles the combination of window and mask buffer targets * clutter/cogl/gles/cogl-textures.c: Implemented cogl_texture_getset in GLES. Limitations are two: a) viewport must be inside the window and have at least width and height of 1 pixel b) framebuffer alpha plane required to properly obtain data for alpha texture channel 2008-04-23 Robert Bragg * clutter/sdl/Makefile.am * clutter/glx/Makefile.am * clutter/pango/Makefile.am * clutter/cogl/gl/Makefile.am * clutter/cogl/common/Makefile.am * clutter/cogl/gles/Makefile.am * clutter/win32/Makefile.am * clutter/x11/Makefile.am * clutter/osx/Makefile.am * clutter/Makefile.am * tests/Makefile.am: Adds support for out of tree builds. Tested building for arm+eglx glx and mingw+win32. 2008-04-23 Neil Roberts * tests/Makefile.am: Don't build test-pixmap if we are not targetting one of the X11-based backends. * configure.ac: Define an AM_CONDITIONAL when we are building for either of the X11-based backends. 2008-04-23 Emmanuele Bassi * clutter/clutter-texture.c: (clutter_texture_set_property), (clutter_texture_class_init): Add a :filename property, writable only, for setting the filename of the texture data. (clutter_texture_set_custom_property), (clutter_scriptable_iface_init): Override the scriptable interface to allow using relative paths for the :filename property; chain up to the parent class implementation. * tests/test-script.json: Update to use "filename" instead of "pixbuf". 2008-04-23 Emmanuele Bassi * clutter/clutter-actor.[ch]: Sync up with trunk, to reduce the chunks between the clutter-ivan branch and trunk when merging. 2008-04-23 Neil Roberts * clutter/clutter-actor.c (clutter_actor_set_property): When one of the rotation properties is set it also tries to set the rotation center to what is was already. clutter_actor_set_rotation expects integer co-ordinates but we were passing them directly from the actor private data which stores them as ClutterUnits 2008-04-22 Robert Bragg * clutter/x11/clutter-x11-texture-pixmap.c: clutter_x11_texture_pixmap_update_area_real simply returns if no pixmap has been set yet so we dont hit an X error after trying XGet[Sub]Image. 2008-04-22 Robert Bragg * clutter/cogl/common/cogl-bitmap-pixbuf.c: Tweaks the calculation of last_row_size in _cogl_bitmap_from_file (USE_GDKPIXBUF) to fix an overflow page fault. 2008-04-22 Neil Roberts * clutter/cogl/cogl.h.in: * clutter/cogl/gl/cogl-texture.c: * clutter/cogl/gles/cogl-texture.c: * doc/reference/cogl/cogl-sections.txt: Removed cogl_texture_can_polygon. 2008-04-22 Neil Roberts * doc/reference/cogl/Makefile.am (INCLUDES): * doc/reference/clutter/Makefile.am (INCLUDES): Added the clutter directory to the include path so that cogl/cogl.h can be included when building cogl-scan and clutter-scan. 2008-04-22 Neil Roberts Relocated the installation location of the cogl header to clutter-VERSION/cogl/cogl.h instead of clutter-VERSION/clutter/cogl.h. * configure.ac: Now generates cogl/cogl-defines-*.gl from the cogl-defines.h in the appropriate directory. cogl.h is also generated to include the right cogl-defines-*.h * clutter/cogl/gl/Makefile.am: * clutter/cogl/gles/Makefile.am: Install cogl headers to clutter-VERSION/cogl instead of clutter-VERSION/clutter. * clutter/cogl/cogl.h: Rename to cogl.h.in and have the configure script filter it so that it can include the right cogl-defines-*.h. * clutter/cogl/gles/cogl-defines.h: Rename to cogl-defines.h.in so that the configure script can copy it to the parent directory. * clutter/cogl/gles/cogl-fbo.c: * clutter/cogl/gl/cogl-fbo.c: Remove inclusion of cogl-defines.h because it has changed its name and it is included indirectly by cogl.h anyway. * clutter/cogl/common/Makefile.am (INCLUDES): Added the clutter folder to the include path. * clutter/clutter-texture.h: Properly include the COGL header as and use CoglHandle instead of void* * clutter/clutter-clone-texture.c: * clutter/clutter-feature.c: * clutter/clutter-group.c: * clutter/clutter-main.c: * clutter/clutter-rectangle.c: * clutter/clutter-shader.c: * clutter/clutter-stage.c: * clutter/clutter-texture.c: * clutter/clutter-actor.c: * clutter/glx/clutter-stage-glx.c: * clutter/glx/clutter-backend-glx.c: * clutter/glx/clutter-glx-texture-pixmap.c: * clutter/pango/pangoclutter-render.c: * clutter/sdl/clutter-stage-sdl.c: * clutter/win32/clutter-backend-win32.c: * clutter/win32/clutter-stage-win32.c: * clutter/x11/clutter-backend-x11.c: * clutter/x11/clutter-stage-x11.c: * clutter/x11/clutter-x11-texture-pixmap.c: Include the COGL header as cogl/cogl.h instead of cogl.h * clutter/pango/Makefile.am: * clutter/osx/Makefile.am: * clutter/glx/Makefile.am: * clutter/sdl/Makefile.am: * clutter/win32/Makefile.am: * clutter/x11/Makefile.am: * clutter/Makefile.am: Remove the two COGL include directories and add the clutter folder so that the cogl header can be included as cogl/cogl.h * tests/Makefile.am: Added the clutter folder to the include path and removed the special build flags for the COGL tests. * tests/test-cogl-offscreen: * tests/test-cogl-tex-convert: * tests/test-cogl-tex-foreign: * tests/test-cogl-tex-getset: * tests/test-cogl-tex-polygon: * tests/test-cogl-tex-tile: Include COGL header as instead of "cogl.h" 2008-04-22 Øyvind Kolås * clutter/cogl/common/stb_image.c: only include emmintrin.h when STBI_SIMD is explictly defined before including stb_image.[ch] to make stb_image compile for ARM. 2008-04-22 Øyvind Kolås * clutter/eglx/clutter-stage-egl.c: removed ::draw_to_pixbuf. 2008-04-22 Ivan Leben * clutter/cogl/gl(es)/cogl-texture.c: (cogl_texture_new_from_foreign:) Sets waste value for the single slice and tex->wrap_mode. This fixes test-cogl-tex-foreign after hardware tiling has been corrected by factoring out the waste from texture coordinates. 2008-04-22 Ivan Leben * clutter/cogl/gl/cogl-texture.c (_cogl_texture_slices_create:) Moved check for harware tiling availability so that n_slices is actually initialized before being used in the check. Fixes test-cogl-tex-tile after introduction of cogl_texture_polygon. 2008-04-22 Øyvind Kolås * clutter/clutter-stage-window.h: removed draw_to_pixbuf call from class. * clutter/glx/clutter-stage-glx.c: removed clutter_stage_glx_draw_to_pixbuf. * clutter/clutter-stage.[ch]: (clutter_stage_read_pixels): made clutter_stage_read_pixels replace clutter_stage_snapshot. * tests/test-stage-read-pixels.c: added test that extends test-actors with a on stage snapshot of the stage behind the circle of hands. * tests/Makefile.am: added test. 2008-04-21 Neil Roberts * clutter/cogl/gles/cogl-texture.c (_cogl_texture_quad_hw): * clutter/cogl/gl/cogl-texture.c (_cogl_texture_quad_hw): Fixed so that if the texture is sliced then it doesn't include the waste part of the texture in the range of the texture coordinates. 2008-04-21 Neil Roberts * clutter/cogl/cogl.h: Added cogl_texture_can_polygon and cogl_texture_polygon. (struct _CoglTextureVertex): New public structure to represent a vertex with texture coordinates and a color to pass to cogl_texture_polygon. * clutter/cogl/gl/cogl-texture.c (_cogl_texture_slices_create): The wrap mode for the texture is now stored in the texture structure so that it can be quickly restored after cogl_texture_polygon temporarily changes it. It now also sets a transparent border color for each texture to make cogl_texture_polygon easier to work with sliced textures. (cogl_texture_can_polygon, cogl_texture_polygon): New public functions. * clutter/cogl/gl/cogl-texture.h (struct _CoglTexture): Added wrap_mode * clutter/cogl/gles/cogl-context.h (struct CoglContext): Added a global resizable array to store vertices in to pass to glDrawArrays from cogl_texture_polygon. * clutter/cogl/gles/cogl-context.c (cogl_create_context): Added initialisers for texture_vertices and textures_vertices_size. (cogl_destroy_context): Frees texture_vertices. * clutter/cogl/gles/cogl-internal.h (COGL_ENABLE_COLOR_ARRAY): Added a bit to enable the color array. * clutter/cogl/gles/cogl-texture.c (cogl_texture_can_polygon) (cogl_texture_polygon): New public functions. * clutter/cogl/gles/cogl.c (cogl_enable): Added test for enabling the color array. * tests/Makefile.am: Added test-cogl-tex-polygon. * tests/test-cogl-tex-polygon.c: New test for cogl_texture_polygon 2008-04-18 Øyvind Kolås * configure.ac: added a configure time option to build without depending on GdkPixbuf that uses stb_image.c instead, this build type is experimental and can be enabled by passing --with-imagebackend=internal to ./configure. * clutter/cogl/common/stb_image.c: new file. * clutter/cogl/common/Makefile.am: added new file. * clutter/cogl/common/cogl-bitmap-pixbuf.c: (_cogl_bitmap_from_file): added alternate codepath. * clutter/clutter-script.c: * clutter/clutter-script-parser.c: #include and disable code referring to GdkPixbuf is USE_GDKPIXBUF is not defined. * clutter/clutter-stage.[ch]: * clutter/clutter-stage.h: * clutter/clutter-stage-window.h: * clutter/glx/clutter-stage-glx.c: * clutter/x11/clutter-stage-x11.c: * tests/test-pixmap.c: * tests/test-textures.c: disable code referring to GdkPixbuf if USE_GDKPIXBUF is not defined. 2008-04-17 Neil Roberts Applied patch from bug #874 * clutter/cogl/gles/cogl.c (cogl_clip_set): * clutter/cogl/gl/cogl.c (cogl_clip_set): If four clip planes are available then attempt to use those to implement the clip rect, otherwise resort to the stencil buffer. * clutter/cogl/cogl.h (enum CoglFeatureFlags): Added feature flags for the stencil buffer and having four clip planes. 2008-04-17 Øyvind Kolås * clutter/clutter-deprecated.h: added deprecation warning for clutter_texture_new_from_pixmap. 2008-04-16 Neil Roberts * tests/test-multistage.c (on_button_press): Fix to use the new clutter_texture_new_from_file function instead of clutter_texture_new_from_pixbuf. 2008-04-16 Neil Roberts * clutter/cogl/gl/cogl-texture.c: * clutter/cogl/gles/cogl-texture.c: Fixed tests for COGL_DEBUG in texture referencing debugging statements. (It's defined as 0 when disabled instead of not being defined at all). oops 2008-04-15 Ivan Leben * tests: update svn:ignore 2008-04-15 Ivan Leben * clutter/cogl/cogl.h: * clutter/cogl/common/cogl-bitmap.c: * clutter/cogl/common/cogl-bitmap-fallback.c: * clutter/cogl/gl/cogl-texture.c: * clutter/cogl/gles/cogl-texture.c: New pixel format COGL_PIXEL_FORMAT_G_8 and appropriate conversions to / from RGBA implemented. * tests/test-cogl-tex-convert.c: Bottom-right image uses G_8 format instead of RGB_888. * clutter/cogl/cogl.h: * clutter/cogl/gl/cogl-texture.h: * clutter/cogl/gl/cogl-texture.c: * clutter/cogl/gles/cogl-texture.h: * clutter/cogl/gles/cogl-texture.c: New function cogl_texture_new_from_foreign constructs a cogl texture from an existing GL texture object. * tests/test-cogl-tex-foreign.c: New test app for cogl_texture_new_from_foreign. 2008-04-15 Neil Roberts * clutter/clutter-texture.c (clutter_texture_set_property) (clutter_texture_get_property, clutter_texture_class_init): Added the 'cogl-texture' property. (clutter_texture_handle_get_type): Added a function to get a boxed type wrapper around a CoglHandle for a texture. (clutter_texture_set_cogl_texture): Emits a notification signal when the cogl-texture property is changed. * clutter/clutter-texture.h: Added a boxed type wrapper for a COGL texture handle. * clutter/cogl/gl/cogl-texture.c (cogl_texture_new_with_size) (cogl_texture_new_from_data, cogl_texture_new_from_file) (cogl_texture_ref, cogl_texture_unref): Added debugging statements for the texture referencing counting. 2008-04-15 Neil Roberts Added reference counting to CoglHandles * tests/test-cogl-offscreen.c (test_coglbox_dispose): * clutter/clutter-texture.c: Replaced calls to cogl_offscreen_destroy with cogl_offscreen_unref. * clutter/cogl/gl/cogl-texture.h: * clutter/cogl/gl/cogl-texture.c: * clutter/cogl/gles/cogl-texture.h: * clutter/cogl/gles/cogl-texture.c: * clutter/cogl/gl/cogl-fbo.h: * clutter/cogl/gl/cogl-fbo.c: * clutter/cogl/gles/cogl-fbo.h: * clutter/cogl/gles/cogl-fbo.c: * clutter/cogl/cogl.h: Added reference counting functions * clutter/clutter-texture.c (struct _ClutterTexturePrivate): max_tile_waste is now guint instead of gint. (clutter_texture_realize): Added a call to cogl_texture_set_filters for every new texture created. (clutter_texture_set_property): Calls clutter_texture_set_max_tile_waste to set the PROP_MAX_TILE_WASTE property. (clutter_texture_get_property): Calls getter functions for the PROP_MAX_TILE_WASTE and PROP_FILTER_QUALITY functions. (clutter_texture_save_to_local_data): Store the filter quality and max_tile_waste when making a local copy of the texture so that it can be restored. (clutter_texture_set_filter_quality): Set the filter quality on the CoglHandle instead if it is available. (clutter_texture_get_filter_quality): Gets the filter quality on the CoglHandle instead if it is available. (clutter_texture_set_cogl_texture) (clutter_texture_set_max_tile_waste) (clutter_texture_get_max_tile_waste): New functions (clutter_set_cogl_texture): New public function to replace clutter_texture_set_from_cogl_texture * tests/test-cogl-tex-convert.c: * tests/test-cogl-tex-getset.c: * tests/test-cogl-tex-tile.c: * tests/test-cogl-offscreen.c: * clutter/pango/pangoclutter-render.c (tc_clear): Replace cogl_texture_destroy with cogl_texture_unref. 2008-04-15 Ivan Leben * clutter/cogl/gl/cogl.c: * clutter/cogl/gl/cogl-context.c: * clutter/cogl/gl/cogl-context.h: _cogl_features_init obtains pointers to all the shader related functions and stores them into context object (same as for FBOs). All the cogl thin wrappers around shader functions redirected to function pointers from context. 2008-04-14 Ivan Leben * clutter/cogl/cogl.h: * clutter/cogl/gl(es)/cogl-texture.c: New functions: cogl_texture_is_sliced and cogl_texture_get_gl_texture. 2008-04-09 Ivan Leben * cluter/cogl/gl/cogl-texture.c: * cluter/cogl/gles/cogl-texture.c: Manual texture coordinate (de)normalization to avoid per-slice texture matrix push/pop. 2008-04-08 Neil Roberts * clutter/clutter-texture.c (clutter_texture_save_to_local_data): Got rid of COGL_PIXEL_FORMAT_HAS_ALPHA now that CoglPixelFormat has the COGL_A_BIT flag to signify that the format has an alpha channel. 2008-04-08 Ivan Leben * clutter/cogl/*: cogl_enable is now internal. All the cogl primitive and texture drawing functions automatically enable required flags. * clutter/cogl/gl/cogl-texture.c: * clutter/cogl/gles/cogl-texture.c: Improved texture drawing to optimize for special cases. Coupled with internal enable flag caching, the font performance has now been restored. * clutter/cogl/gl/cogl-defines.h: * clutter/cogl/gles/cogl-defines.h: Clean-up of obsolete defines. One step closer to not having it included in cogl.h * clutter/glx/clutter-glx-texture-pixmap.c: commented usage of old cogl functions * tests/test-text.c: fps counter for measuring texture performance 2008-04-07 Neil Roberts Removed GdkPixbuf related code from ClutterTexture. * clutter/cogl/gles/cogl-texture.c (cogl_texture_new_from_file): * clutter/cogl/gl/cogl-texture.c (cogl_texture_new_from_file): * clutter/cogl/common/cogl-bitmap-pixbuf.c (_cogl_bitmap_from_file): Now takes an error pointer to pass up errors from gdk-pixbuf. * clutter/clutter-texture.h: Removed pixbuf functions and added clutter_texture_set_from_file and clutter_texture_new_from_file. * clutter/clutter-texture.c (clutter_texture_unrealize, clutter_texture_realize): Now saves the system memory copy of the texture to a local guchar array instead of to a pixbuf (clutter_texture_set_property, clutter_texture_get_property): Removed the pixbuf property. (clutter_texture_get_pixbuf, clutter_texture_set_pixbuf): Removed. (clutter_texture_set_from_file): New function. * tests/test-viewport.c: * tests/test-textures.c: * tests/test-shader.c: * tests/test-rotate.c: * tests/test-fbo.c: * tests/test-depth.c: * tests/test-cogl-tex-tile.c: * tests/test-cogl-tex-getset.c: * tests/test-cogl-tex-convert.c: * tests/test-cogl-offscreen.c: * tests/test-behave.c: * tests/test-actors.c: Adapted to use clutter_texture_new_from_file instead of clutter_texture_new_from_pixbuf. 2008-04-07 Neil Roberts Adapted PangoClutterRenderer to use the new COGL API. This currently seems to get about half the performance though. * clutter/pango/pangoclutter-render.c: Now uses CoglHandles and the new texture API instead of creating GL textures directly. (draw_trapezoid): Removed as it doesn't seem to be used anywhere. * clutter/cogl/gles/cogl-texture.c (_cogl_pixel_format_to_gl): Added the COGL_PIXEL_FORMAT_A8 pixel format. (_cogl_texture_upload_subregion_to_gl): Now sets GL_UNPACK_ALIGNMENT based on the rowstride otherwise it won't support bitmaps aligned to anything but 4. * clutter/cogl/gl/cogl-texture.c (_cogl_pixel_format_to_gl): Added the COGL_PIXEL_FORMAT_A8 pixel format. 2008-04-04 Neil Roberts * clutter/cogl/gles/cogl-texture.c (_cogl_texture_upload_to_gl): Set GL_UNPACK_ALIGNMENT to 1 before uploading data for a tile. The default value is 4 so if you used image data that doesn't have an alpha it would previously be misaligned and show a corrupted texture. 2008-04-04 Neil Roberts * clutter/cogl/gl/cogl-texture.c (_cogl_subregion_gl_store_rules): Now sets ROW_LENGTH based on the row stride instead of the image width. This allows you to use the row stride to make a texture from a sub-section of a larger image. This is necessary to use GdkPixbufs generated using gdk_pixbuf_new_subpixbuf. * clutter/clutter-texture.c (clutter_texture_set_from_data): Fixed a bug with sync-size if you try to change the size of the texture data more than once. When clutter_actor_set_size is called in response to the texture size being changed the sync_actor_size flag is cleared. The fix just sets it again after the call is finished. 2008-04-03 Ivan Leben * clutter/cogl/cogl.h: * clutter/cogl/gl/cogl.c: * clutter/cogl/gles/cogl.c: Removed old offscreen api. Renamed cogl_offscreen_buf_destroy to cogl_offscreen_destroy since there is no clash anymore. * clutter/cogl/gl/fbo.c: * clutter/cogl/gles/fbo.c: * clutter/clutter-texture.c: * tests/test-cogl-offscreen.c: cogl_offscreen_buf_destroy -> cogl_offscreen_destroy 2008-04-03 Ivan Leben * clutter/clutter-texture.c: Fixed an = to |= typo. 2008-04-03 Neil Roberts * tests/test-textures.c (main): Removed call to clutter_texture_get_n_tiles which is no longer supported. 2008-04-03 Neil Roberts Upgraded ClutterTexture and ClutterCloneTexture to use the new texture API in COGL. * clutter/clutter-texture.c (clutter_texture_realize): Greatly simplified to just load the texture data using the new COGL API. The static utility functions that were used to load the data have been removed and are now in COGL. (clutter_texture_set_property): Removed the use-tiles property because it can no longer be implemented with the new COGL API. The repeat-x, repeat-y and filter-quality properties now cause the actor to be redrawn. (clutter_texture_get_property): Removed the pixel-type property because the information is now available in the single pixel-format property. This is now directly queried from the COGL texture instead of being stored in a private member variable. * clutter/clutter-texture.h: Removed API functions that are related to tiling because they are no longer neccessary to implement ClutterCloneTexture using the new COGL texture API. * clutter/clutter-clone-texture.c (clutter_clone_texture_set_property) (clutter_clone_texture_get_property): Added repeat-x and repeat-y properties. (clone_texture_render_to_gl_quad): Removed so that the painting can be done via the COGL API instead. (clutter_clone_texture_paint): Painting greatly simplified so that it just gets a handle to the COGL texture from the parent ClutterTexture and calls COGL to render it. Also supports the repeat-x and repeat-y properties by extending the texture co-ordinates given to cogl_texture_rectangle. 2008-04-02 Ivan Leben * clutter/cogl/gl/cogl-texture.c: Fixed a bug where cogl_texture_get_data would corrupt memory if the texture was sliced. 2008-04-02 Ivan Leben * clutter/cogl/cogl.h: * clutter/cogl/gl(es)/cogl-texture.h: * clutter/cogl/gl(es)/cogl-texture.c: Added min/mag filter property to a texture. New function cogl_texture_set_filters. cogl_texture_get_properties broken into separate functions for each of the texture properties (e.g. cogl_texture_get_width). * clutter/clutter-texture.c: * clutter/glx/clutter-glx-texture-pixmap.c: * clutter/pango/pangoclutter-render.c: Commented out clashes with new api while Clutter is being moved to new textures api. * tests/test-cogl-tex-tile.c: Set linear min mag filters after creating texture. * tests/test-cogl-tex-getset.c: Use new getter functions. 2008-04-02 Ivan Leben * clutter/cogl/gl/cogl.c: * clutter/cogl/gles/cogl.c: Explicit cast to remove const qualifier when initing bitmap structure with given data argument fixes the compile warning. 2008-04-02 Ivan Leben * clutter/cogl/cogl.h: * clutter/cogl/gl/cogl.c: Rearraging, grouping and marking of functions that are expected to be removed in the cleanup phase after clutter is moved to new api. * clutter/cogl/gl/cogl-texture.c: * clutter/cogl/gles/cogl-texture.c: * tests/test-cogl-tex-getset.c: Renamed cogl_texture_set_subregion to cogl_texture_set_region. Data argument made const. 2008-03-31 Ivan Leben * cluter/cogl/gl/cogl-context.c: Removed the inclusion of gles header. (Copy-paste error when syncing with gles port.) 2008-03-26 Ivan Leben * tests: update svn:ignore 2008-03-26 Ivan Leben Bug fixes, code rearrangement. FBOs ported to GLES (mainly just stubs). * clutter/cogl/gl/cogl-texture.c: New function cogl_texture_new_with_size creates an empty texture of given size. * tests/test-cogl-offscreen.c: Two partially-occluded rectangles are drawn to an offscreen buffer and then blended as one entity with the textured background. 2008-03-20 Ivan Leben * clutter/cogl/cogl.h: * clutter/cogl/cogl.c: * clutter/cogl/cogl-context.h: * clutter/cogl/cogl-context.c: Added COGL_FEATURE_OFFSCREEN_BLIT and COGL_FEATURE_OFFSCREEN_MULTISAMPLE. Added function pointers for generation of renderbuffers. All EXT function pointers now stored in context structure A default context structure is now created automatically upon a call to cogl_context_get_default * tests/test-cogl-xxx.c: Removed a call to cogl_context_create. * clutter/cogl/gl/cogl-defines.h: Removed EXT fuction declarations. We rely on glext.h to provied those anyway. * clutter/cogl/gl/cogl-fbo.c: Checks for offscreen feature support before calling EXT functions via pointers in context. 2008-03-20 Ivan Leben * clutter/cogl/gl(es)/cogl-texture.c: Moved some declarations from here ... * clutter/cogl/gl(es)/cogl-texture.h: ...to a new header file, to be able to reference textures from FBOs. * clutter/cogl/gl(es)/cogl-context.h: * clutter/cogl/gl(es)/cogl-context.c: * clutter/cogl/gl/cogl-fbo.h: * clutter/cogl/gl/cogl-fbo.c: Began implementing FBOs. GL flavour currently not compilable. Need to resolve some issues in cogl-defines.h. 2008-03-18 Ivan Leben * clutter/cogl/gl(es)/cogl-context.h: * clutter/cogl/gl(es)/cogl-context.c: Implemented a CoglContext structure and context create / destroy api to be able to init state properly and centralize state variables. * clutter/cogl/gl(es)/cogl-primitives.h: * clutter/cogl/gl(es)/cogl-primitives.c: * clutter/cogl/gl(es)/cogl-texture.h: * clutter/cogl/gl(es)/cogl-texture.c: Moved state variables to CoglContext. * tests/test-cogl-*.c: Updated CoglTestbox to create cogl context. * clutter/eglx/clutter-stage-egl.c: Some more testing with glGet values. 2008-03-11 Ivan Leben * clutter/eglx/clutter-stage-egl.c: Output all the available configurations prior to choosing one. Clearly shows no stencil buffer available with PowerVR's GLES SDK. 2008-03-07 Ivan Leben * clutter/cogl/common/cogl-bitmap.h: * clutter/cogl/common/cogl-bitmap.c: Utility function to copy data subregion between two bitmaps of same format. * clutter/cogl/gl/cogl-texture.c: Minor bug fix. * clutter/cogl/gles/cogl-texture.c: Texture api ported to GLES (get/set still missing). * clutter/cogl/cogl.h: Texture creation functions now also take maximum waste parameter. * tests/test-cogl-tex-xxx.c: Update to new texture creation api. 2008-03-06 Ivan Leben * ./ : update svn:ignore * tests: update svn:ignore 2008-03-06 Ivan Leben * clutter/cogl/common: Common files (util and bitmap related) moved here and compiled into an intermediate static lib to be linked in to proper gl(es) version of the library. 2008-03-04 Ivan Leben * clutter/cogl/cogl.h: * clutter/cogl/gl/cogl-texture.c: cogl_texture_set_subregion implemented * tests/test-cogl-tex-getset.c: Tests texture image retrieval and subregion update api. 2008-03-01 Ivan Leben * tests/test-cogl.c: Renamed to: * tests/test-cogl-primitives.c: ... and reverted to test the primitives api * tests/test-cogl-tex-tile.c: A separate test for texture tiling. Now animated to test a broader range of input data. * tests/test-cogl-tex-convert.c: Tests bitmap conversion functions by forcing the image data to a different internal format. 2008-02-29 Ivan Leben * clutter/cogl/gl/cogl-bitmap.h: * clutter/cogl/gl/cogl-bitmap-fallback.h: * clutter/cogl/gl/cogl-bitmap-pixbuf.h: Many bugs fixed in the fallback conversion code that make it actually work. Conversions from rgba to other 24 and 32 bit formats required by cogl_texture_get_image. * clutter/cogl/cogl.h: * clutter/cogl/gl/cogl-texture.c: Bug fixes to make conversions work. cogl_texture_new_xxx functions now take internal format as a convenience so cogl can do a conversion prior to passing the data to GL if requested so by the user (e.g. rgb(a) -> grayscale) 2008-02-28 Ivan Leben * clutter/cogl/gl/cogl.c: Moved _cogl_get_format_bpp ... * clutter/cogl/gl/cogl-bitmap.c: - ... here - Convenience function _cogl_bitmap_convert_and_premult does both * clutter/cogl/gl/cogl-texture.c: - Generalized the gl pixel storage setup function to be able to specify both pack and unpack rules - implemented _cogl_texture_download_from_gl - implemented cogl_texture_get_image (renamed from cogl_texture_get_subregion, since obtaining subregion is not supported by GL.. might get renamed again :) 2008-02-27 Ivan Leben * clutter/cogl/cogl.h: * clutter/cogl/gl/cogl-texture.c: - New function cogl_texture_get_properties returns texture width, height and maximum waste. - CoglSpanIter structure and iterator api abstracts iteration over slices when an area needs to be covered by returning slice-coverage intersection info. - Software tiling simplified using span iterators - Began work on cogl_texture_get_sub_region and cogl_texture_set_sub_region (will use span iterators as well) 2008-02-27 Ivan Leben * tests/test-cogl.c: Background color changed to emphasize the transparency in the redhand image. 2008-02-27 Ivan Leben * clutter/cogl/cogl.h: cogl_texture_draw renamed to cogl_texture_rectangle to better match the rest of the drawing api * clutter/cogl/gl/cogl-texture.c: Harware tiling implemented and used when supported. Software (manual) tiling now only used as a fallback. 2008-02-27 Ivan Leben * clutter/cogl/gl(es)/cogl.c: Moved the COGL_DEBUG definition from source ... * clutter/cogl/gl(es)/cogl-internal.h: ... to header file. * clutter/cogl/gl/cogl-texture.c: - Uploading to gl for multiple slices implemented - Unique upload function for both one and many slices - Some fixes for bugs found while testing - Some more comments 2008-02-26 Ivan Leben * clutter/cogl/cogl.h: Texture drawing api now takes texture coordinates for quad corners. * clutter/cogl/gl/cogl-texture.c: Tiling has been implemented. Whenever the quad texture corner coordinates are different than (0,0)-(1,1) the texture slices are automatically drawn as many times as to cover the whole quad area, thus tiling the whole texture image across the quad. To be used as a fallback where GL_REPEAT for texture wrap mode is not supported. * clutter/tests/test-cogl.c: Draws the red hand image tiled several times. 2008-02-23 Ivan Leben * clutter/cogl/gl/cogl-texture.c: slicing moved into cogl texture api 2008-02-22 Ivan Leben * clutter/cogl/TODO: a special (temporary) TODO for cogl overhaul related stuff 2008-02-22 Ivan Leben * clutter/clutter-feature.h: added a new feature: CLUTTER_FEATURE_TEXTURE_NPOT * clutter/cogl/cogl.h: cogl has got its own feature flags defined * clutter/cogl/gl(es)/cogl.c: new feature check for ARB_texture_non_power_of_two * clutter/cogl/gl(es)/cogl-util.h: * clutter/cogl/gl(es)/cogl-util.c: cogl_util_next_p2 moved from clutter for independency * clutter/cogl/gl/cogl-texture.c: - texture handles being stored into and array - cogl_is_texture checks for a valid handle - structures and functions prepared for implementation of slicing 2008-02-21 Ivan Leben * clutter/cogl/gl/cogl.c: * clutter/cogl/gl/cogl-internal.h: * clutter/cogl/gl/cogl-bitmap-pixbuf.c: * clutter/cogl/gl/cogl-bitmap-fallback.c: * clutter/cogl/gl/cogl-texture.c: Some debugging of the texture code written so far... * clutter/tests/test-cogl.c: ...and the first texture is being drawn using the new api! 2008-02-19 Ivan Leben * clutter/cogl/gl/cogl.h: braces () around complex pixel format enums * clutter/cogl/gl/cogl-bitmap.h: * clutter/cogl/gl/cogl-bitmap-fallback.h: * clutter/cogl/gl/cogl-bitmap-pixbuf.h: simplified api by introducing internal CoglBitmap struct * clutter/cogl/gl/cogl-texture.c: - using CoglBitmap - format conversion and alpha unpremultiplication using cogl_bitmap_xxx api 2008-02-19 Ivan Leben * clutter/cogl/gl/cogl-texture.c: prepared to implement the upload-to-GL stage 2008-02-19 Ivan Leben * clutter/cogl/gl/cogl-texture.c: loading from file (first stage - load data into memory) implemented in CoglTexture * clutter/cogl/gl/cogl-bitmap.h: * clutter/cogl/gl/cogl-bitmap-fallback.c: * clutter/cogl/gl/cogl-bitmap-pixbuf.c: loading from file implemented in GdkPixbuf imaging backend 2008-02-18 Ivan Leben * clutter/cogl/gl/cogl-texture.c: * clutter/cogl/gl/cogl-bitmap.h: * clutter/cogl/gl/cogl-bitmap-fallback.c: * clutter/cogl/gl/cogl-bitmap-pixbuf.c: image loading and pixel conversions moved behind a simple abstraction api that makes adding new native image library 'backends' easy * clutter/cogl/gl/Makefile.am: for now hardcoded to use pixbuf imaging library, this should be handled by configure.ac later * clutter/cogl/cogl.h: updated CoglFormat enum to add premultiplied image formats 2008-02-16 Ivan Leben * clutter/cogl/gl/cogl-texture.c: started moving clutter-texture code to cogl level * clutter/cogl/cogl.h: enums and declarations required by the textures api (not complete yet) 2008-02-13 Ivan Leben * clutter/cogl/gl/cogl-primitives.c: * clutter/cogl/gles/cogl-primitives.c: Primitives api extensively commented. 2008-02-13 Ivan Leben * clutter/cogl/gl/cogl-primitives.c: moved cogl_color ... * clutter/cogl/gl/cogl.c: ... back here, since it might be subject to more general use. * clutter/cogl/gles/cogl.c: * clutter/cogl/gles/cogl-internal.h: * clutter/cogl/gles/cogl-primitives.c: Primitives api ported to GLES. 2008-02-12 Ivan Leben * clutter/cogl/cogl.c: moved drawing api... * clutter/cogl/cogl-primitives.c: ...to a separate file * clutter/cogl/cogl-internal.h: hosts internal declarations and #defines common to all the source files implementing cogl 2008-02-12 Ivan Leben * clutter/cogl/cogl.c: - removed cogl_set_fill_color, cogl_set_stroke_color (a unique color is specifiad via cogl_color and used for both filling and stroking) - renamed cogl_rectangle to cogl_fast_fill_rectangle (uses current color just like cogl_fill and cogl_stroke) - renamed cogl_trapezoid to cogl_fast_fill_trapezoid (uses current color just like cogl_fill and cogl_stroke) - cogl_fast_fill_rectanglex, cogl_fast_fill_trapezoidx (ClutterFixed versions) * clutter/cogl/cogl.h: rectangle and color api update * tests/test-coglc: update to use cogl_color instead * clutter/clutter-actor.c: * clutter/clutter-rectangle.c: cogl_rectangle => cogl_fast_fill_rectangle * clutter/pango/pangoclutter-render.c: cogl_trapezoid => cogl_fast_fill_trapezoid 2008-02-12 Ivan Leben * clutter/cogl/cogl.h: drawing api inserted into header * clutter/cogl/gl/cogl.c: - bezier relative functions - internal functions made static 2008-02-12 Ivan Leben * clutter/cogl/gl/cogl.c: - relative versions of path_xxx_to apis (path_xxx_to_rel) - horizontal, vertical lines for even more handyness - cogl_round_rectangle - all the input arguments changed to ClutterFixed * tests/test-cogl.c: added round rectangle to drawing list 2008-02-11 Ivan Leben * clutter/cogl/gl/cogl.c: bezier quadratic and cubic curve subdivision implemented. * tests/test-cogl.c: added bezier curves to drawing list 2008-02-09 Ivan Leben * tests/test-cogl.c: moved the "cogltester" class from clutter-cogltester.c into a dedicated test app. The cogl testing actor cycles between and draws various cogl primitives. * clutter/cogl/gl/cogl.c: almost all the basic primitives done 2008-02-08 Ivan Leben * clutter/cogl/gl/cogl.c: some more work on higher level drawing api * clutter/clutter-cogltester.h: header for a simple actor to test new cogl api. For now just an empty rig. * clutter/clutter-cogltester.c: implementation of a simple actor to test new cogl api. For now just an empty rig. 2008-02-07 Ivan Leben * clutter/cogl/gl/cogl.c: started work on higher level drawing api.