Commit Graph

59 Commits

Author SHA1 Message Date
Neil Roberts
eccd9399e5 * clutter/cogl/gl/cogl.c (error_string):
* clutter/cogl/gles/cogl.c (error_string): Rename to
	_cogl_error_string and remove the static scoping so that it can be
	called in cogl-texture etc.

	* clutter/cogl/gl/cogl-texture.c (cogl_texture_new_from_foreign):
	* clutter/cogl/gles/cogl-texture.c (cogl_texture_new_from_foreign):
	GE(*) can't be used to wrap around calls that use the return
	value.

	* clutter/cogl/gl/cogl-texture.c (_cogl_texture_quad_sw)
	(_cogl_texture_quad_hw, cogl_texture_polygon): Remove GE(*)
	wrapper around calls in the middle of a glBegin/glEnd pair which
	otherwise always generate an error because glGetError can only be
	called outside of the pair.

	* clutter/cogl/gl/cogl-internal.h: Include stdio.h when definig
	COGL_DEBUG and declare a prototype for _cogl_error_string.

	* clutter/cogl/gles/cogl-internal.h: Match GE(*) macro to GL
	version.
2008-05-21 13:20:33 +00:00
Ivan Leben
091c79b9ae * clutter/cogl/gles/cogl-texture.c:
(_cogl_texture_download_from_gl:) Only comment out the broken
	check for framebuffer alpha bits, not the check for alpha in
	texture format.
2008-05-21 10:00:08 +00:00
Ivan Leben
4cb0d58ceb * clutter/cogl/gles/cogl-texture.c:
(cogl_texture_download_from_gl:) Implemented a workaround
	for missing alpha framebuffer channel. There are still
	some issues with detecting whether alpha is present in the
	framebuffer. See comments in code. Test-cogl-tex-getset now
	successfully retrieves a RGBA texture image data.
2008-05-20 10:37:36 +00:00
Ivan Leben
006573ac61 * clutter/cogl/gles/cogl-texture.c:
(cogl_texture_download_from_gl:) Store old blending factors
	and restore them when done. The lack of ability to retrieve
	the alpha channel now more noticable in test-cogl-tex-getset
	since the edges of the hand are not antialiased.

	* clutter/cogl/gl(es)/cogl-internal.h: Declare
	cogl_blend_func to avoid "implicit implementation" compile
	warning.
2008-05-19 15:21:56 +00:00
Ivan Leben
d049d9ead4 * clutter/cogl/gl(es)/cogl.c: New internal function
cogl_blend_func caches blending setup much like cogl_enable
	does with the enable flags. This separates blending factors
	setup from the enable/disable operation in preparation of
	the texture image retrieval fix for alpha channel on GLES.
	(cogl_enable:) Does not modify blending factors anymore.

	* clutter/cogl/gl(es)/cogl-context.h: CoglContext holds two
	new variables to cache blending src and dst factors.

	* clutter/cogl/gl(es)/cogl-context.c:
	(cogl_create_context:) Initialize blending factors.

	* clutter/cogl/gles/cogl-texture.c:
	(cogl_texture_download_from_gl:) Set blending factors to
	CGL_ONE, CGL_ZERO which fixes the slighlty improper behavior
	where source colour was actually multiplied with its alpha
	value in the result (not noticable on current tests).
2008-05-19 15:02:27 +00:00
Ivan Leben
b9827fb945 * clutter/cogl/cogl.h.in:
* clutter/cogl/gl(es)/cogl-texture.h:
	* clutter/cogl/gl(es)/cogl-texture.c:
	cogl_texture_new_* functions take a gboolean auto_mipmap argument.
	If TRUE automatic mipmap generation is enabled during the process
	of slice texture object creation.
	(cogl_texture_new_from_foreign:) now allows mipmap min filter
	flags.

	* clutter/clutter-texture.c:
	* clutter/glx/clutter-glx-texture-pixmap.c:
	* tests/test-cogl-offscreen.c:
	* tests/test-cogl-tex-tile.c:
	* tests/test-cogl-tex-convert.c:
	* tests/test-cogl-tex-polygon.c:
	* tests/test-cogl-tex-getset.c:
	Pass FALSE for auto_mipmap to cogl_texture_new_*.

	* clutter/pango/pangoclutter-render.c:
	(tc_get:) Pass TRUE to cogl_texture_new_with_size and use mipmap
	min filter for nicer glyphs at small scales. As a result test-text
	has gone all beautiful now.
2008-05-07 16:12:54 +00:00
Neil Roberts
0e0890a2e9 Removed COGLhandle and changed shader and program functions to be
wrapped in reference-counted CoglHandles instead.

	* clutter/cogl/gl/cogl-shader.c: 
	* clutter/cogl/gl/cogl-shader.h: 
	* clutter/cogl/gl/cogl-program.c: 
	* clutter/cogl/gl/cogl-program.h: 
	New files to hold the shader and program functions.

	* clutter/cogl/gl/cogl.c: Removed shader and program functions.

	* clutter/cogl/common/cogl-handle.h: New header to define
	COGL_HANDLE_DEFINE which helps build functions to create
	reference-counted handles. This reduces the amount of duplicated
	code.

	* clutter/cogl/gl/cogl-texture.c: 
	* clutter/cogl/gles/cogl-texture.c: 
	* clutter/cogl/gl/cogl-fbo.c: Converted to use COGL_HANDLE_DEFINE
	from cogl-handle.h to avoid duplicating some of the common code.

	* clutter/cogl/gles/cogl-defines.h.in: 
	* clutter/cogl/gl/cogl-defines.h.in: Removed COGLhandle

	* clutter/cogl/gl/cogl-context.h: Added handle arrays for programs
	and shaders.

	* clutter/cogl/gl/cogl-context.c (cogl_create_context): Added
	initialisers for shader_handles and program_handles.
	(cogl_destroy_context): Added calls to g_array_free for all handle
	arrays.

	* clutter/cogl/gl/Makefile.am (libclutter_cogl_la_SOURCES): Added
	cogl-{program,shader}.{c,h}

	* clutter/cogl/common/Makefile.am
	(libclutter_cogl_common_la_SOURCES): Added cogl-handle.h

	* clutter/cogl/gles/cogl.c:
	* clutter/cogl/cogl.h.in: Programs and shaders are now wrapped in
	CoglHandles instead of COGLhandles. cogl_program_destroy and
	cogl_shader_destroy is now replaced with cogl_program_unref and
	cogl_shader_unref. cogl_program_ref and cogl_shader_ref are also
	added.

	* clutter/clutter-shader.c: Converted to use CoglHandles for the
	programs and shaders instead of COGLhandles.

	* cogl/cogl-sections.txt: Added cogl_shader_ref,
	cogl_shader_unref, cogl_is_shader, cogl_program_ref,
	cogl_program_unref, cogl_is_program and cogl_is_offscreen.
2008-04-29 16:10:37 +00:00
Robert Bragg
0077d427a8 2008-04-29 Robert Bragg <bob@o-hand.com>
* clutter/cogl/gles/cogl-texture.c:
	Replaces an malloc call with g_malloc.
2008-04-29 12:44:41 +00:00
Neil Roberts
eff57a1cb0 Merged clutter-ivan branch into trunk.
svn merge \
 https://svn.o-hand.com/repos/clutter/trunk/clutter@2509 \
 https://svn.o-hand.com/repos/clutter/branches/clutter-ivan@HEAD
2008-04-25 13:37:36 +00:00