diff --git a/cogl-color.h b/cogl-color.h index 8303f29e9..76be2053c 100644 --- a/cogl-color.h +++ b/cogl-color.h @@ -224,61 +224,6 @@ float cogl_color_get_blue (const CoglColor *color); */ float cogl_color_get_alpha (const CoglColor *color); -/** - * cogl_set_source_color: - * @color: a #CoglColor - * - * Sets the source color using normalized values for each component. - * This color will be used for any subsequent drawing operation. - * - * See also cogl_set_source_color4ub() and cogl_set_source_color4f() - * if you already have the color components. - * - * Since: 1.0 - */ -void cogl_set_source_color (const CoglColor *color); - -/** - * cogl_set_source_color4ub: - * @red: value of the red channel, between 0 and 255 - * @green: value of the green channel, between 0 and 255 - * @blue: value of the blue channel, between 0 and 255 - * @alpha: value of the alpha channel, between 0 and 255 - * - * Sets the source color using unsigned bytes for each component. This - * color will be used for any subsequent drawing operation. - * - * The value for each component is an unsigned byte in the range - * between 0 and 255. - * - * Since: 1.0 - */ -void cogl_set_source_color4ub (guint8 red, - guint8 green, - guint8 blue, - guint8 alpha); - -/** - * cogl_set_source_color4f: - * @red: value of the red channel, between 0 and %1.0 - * @green: value of the green channel, between 0 and %1.0 - * @blue: value of the blue channel, between 0 and %1.0 - * @alpha: value of the alpha channel, between 0 and %1.0 - * - * Sets the source color using normalized values for each component. - * This color will be used for any subsequent drawing operation. - * - * The value for each component is a fixed point number in the range - * between 0 and %1.0. If the values passed in are outside that - * range, they will be clamped. - * - * Since: 1.0 - */ -void cogl_set_source_color4f (float red, - float green, - float blue, - float alpha); - G_END_DECLS #endif /* __COGL_COLOR_H__ */ diff --git a/cogl-material.h b/cogl-material.h index e8bf65632..6bcfeb3f7 100644 --- a/cogl-material.h +++ b/cogl-material.h @@ -68,7 +68,7 @@ void cogl_material_unref (CoglHandle handle); void cogl_material_set_color (CoglHandle material, const CoglColor *color); /** - * cogl_material_set_color: + * cogl_material_set_color4ub: * @material: A CoglMaterial object * @red: The red component * @green: The green component @@ -81,11 +81,31 @@ void cogl_material_set_color (CoglHandle material, const CoglColor *color); * * Since 1.0 */ -void cogl_material_set_color4ub (CoglHandle handle, - guint8 red, - guint8 green, - guint8 blue, - guint8 alpha); +void cogl_material_set_color4ub (CoglHandle material, + guint8 red, + guint8 green, + guint8 blue, + guint8 alpha); + +/** + * cogl_material_set_color4f: + * @material: A CoglMaterial object + * @red: The red component + * @green: The green component + * @blue: The blue component + * @alpha: The alpha component + * + * This is the basic color of the material, used when no lighting is enabled. + * + * The default value is (1.0, 1.0, 1.0, 1.0) + * + * Since 1.0 + */ +void cogl_material_set_color4f (CoglHandle material, + float red, + float green, + float blue, + float alpha); /** * cogl_material_get_color: @@ -96,7 +116,7 @@ void cogl_material_set_color4ub (CoglHandle handle, * * Since 1.0 */ -void cogl_material_get_color (CoglHandle handle, CoglColor *color); +void cogl_material_get_color (CoglHandle material, CoglColor *color); /** * cogl_material_set_ambient: @@ -125,7 +145,7 @@ void cogl_material_set_ambient (CoglHandle material, * * Since 1.0 */ -void cogl_material_get_ambient (CoglHandle handle, CoglColor *ambient); +void cogl_material_get_ambient (CoglHandle material, CoglColor *ambient); /** * cogl_material_set_diffuse: @@ -153,7 +173,7 @@ void cogl_material_set_diffuse (CoglHandle material, * * Since 1.0 */ -void cogl_material_get_diffuse (CoglHandle handle, CoglColor *diffuse); +void cogl_material_get_diffuse (CoglHandle material, CoglColor *diffuse); /** * cogl_material_set_ambient_and_diffuse: @@ -197,7 +217,7 @@ void cogl_material_set_specular (CoglHandle material, * * Since 1.0 */ -void cogl_material_get_specular (CoglHandle handle, CoglColor *specular); +void cogl_material_get_specular (CoglHandle material, CoglColor *specular); /** * cogl_material_set_shininess: @@ -224,7 +244,7 @@ void cogl_material_set_shininess (CoglHandle material, * * Since 1.0 */ -float cogl_material_get_shininess (CoglHandle handle); +float cogl_material_get_shininess (CoglHandle material); /** * cogl_material_set_emission: @@ -251,7 +271,7 @@ void cogl_material_set_emission (CoglHandle material, * * Since 1.0 */ -void cogl_material_get_emission (CoglHandle handle, CoglColor *emission); +void cogl_material_get_emission (CoglHandle material, CoglColor *emission); /** * CoglMaterialAlphaFunc: @@ -660,18 +680,30 @@ void cogl_material_set_layer_matrix (CoglHandle material, gint layer_index, CoglMatrix *matrix); + +/** + * SECTION:cogl-material-internals + * @short_description: Functions for creating custom primitives that make use + * of Cogl materials for filling. + * + * Normally you shouldn't need to use this API directly, but if you need to + * developing a custom/specialised primitive - probably using raw OpenGL - then + * this API aims to expose enough of the material internals to support being + * able to fill your geometry according to a given Cogl material. + */ + + /** * cogl_material_get_cogl_enable_flags: * @material: A CoglMaterial object * - * This determines what flags need to be passed to cogl_enable before - * this material can be used. Normally you shouldn't need to use this - * function directly since Cogl will do this internally, but if you are - * developing custom primitives directly with OpenGL you may want to use - * this. + * This determines what flags need to be passed to cogl_enable before this + * material can be used. Normally you shouldn't need to use this function + * directly since Cogl will do this internally, but if you are developing + * custom primitives directly with OpenGL you may want to use this. * - * Note: This API is hopfully just a stop-gap solution. Ideally - * cogl_enable will be replaced. + * Note: This API is hopfully just a stop-gap solution. Ideally cogl_enable + * will be replaced. */ /* TODO: find a nicer solution! */ gulong @@ -710,7 +742,7 @@ typedef enum _CoglMaterialLayerType /** * cogl_material_layer_get_type: - * @material: A CoglMaterial object + * @layer_handle: A CoglMaterialLayer handle * * Currently there is only one type of layer defined: * COGL_MATERIAL_LAYER_TYPE_TEXTURE, but considering we may add purely GLSL @@ -726,7 +758,7 @@ CoglMaterialLayerType cogl_material_layer_get_type (CoglHandle layer_handle); /** * cogl_material_layer_get_texture: - * @layer_handle: A CoglMaterial layer object + * @layer_handle: A CoglMaterialLayer handle * * This lets you extract a CoglTexture handle for a specific layer. Normally * you shouldn't need to use this function directly since Cogl will do this @@ -754,7 +786,7 @@ typedef enum _CoglMaterialLayerFlags /** * cogl_material_layer_get_flags: - * @layer_handle: A CoglMaterial layer object + * @layer_handle: A CoglMaterialLayer layer handle * * This lets you get a number of flag attributes about the layer. Normally * you shouldn't need to use this function directly since Cogl will do this @@ -793,44 +825,11 @@ typedef enum _CoglMaterialFlushOption * This function commits the state of the specified CoglMaterial - including * the texture state for all the layers - to the OpenGL[ES] driver. * - * Normally you shouldn't need to use this function directly, but if you - * are developing a custom primitive using raw OpenGL that works with - * CoglMaterials, then you may want to use this function. - * * Since 1.0 */ void cogl_material_flush_gl_state (CoglHandle material, ...) G_GNUC_NULL_TERMINATED; -/** - * cogl_set_source: - * @material: A CoglMaterial object - * - * This function sets the source material that will be used to fill - * subsequent geometry emitted via the cogl API. - * - * Note: in the future we may add the ability to set a front facing - * material, and a back facing material, in which case this function - * will set both to the same. - * - * Since 1.0 - */ -/* XXX: This doesn't really belong to the cogl-material API, it should - * move to cogl.h */ -void cogl_set_source (CoglHandle material); - -/** - * cogl_set_source_texture: - * @texture_handle: The Cogl texture you want as your source - * - * This is a convenience function for creating a material with the first - * layer set to #texture_handle and setting that material as the source with - * cogl_set_source. - * - * Since 1.0 - */ -void cogl_set_source_texture (CoglHandle texture_handle); - G_END_DECLS #endif /* __COGL_MATERIAL_H__ */ diff --git a/cogl-matrix.h b/cogl-matrix.h index 08c4a7009..1d5942f83 100644 --- a/cogl-matrix.h +++ b/cogl-matrix.h @@ -10,9 +10,9 @@ G_BEGIN_DECLS * @short_description: Fuctions for initializing and manipulating 4x4 * matrices. * - * Matrices are used in Cogl to describe affine model-view transforms and - * texture transforms, and projective transforms. This exposes a utility API - * that can be used for direct manipulation of these matrices. + * Matrices are used in Cogl to describe affine model-view transforms, texture + * transforms, and projective transforms. This exposes a utility API that can + * be used for direct manipulation of these matrices. */ @@ -22,7 +22,7 @@ G_BEGIN_DECLS * A CoglMatrix holds a 4x4 transform matrix. This is a single precision, * column-major matrix which means it is compatible with what OpenGL expects. * - * A CoglMatix can represent transforms such as, rotations, scaling, + * A CoglMatrix can represent transforms such as, rotations, scaling, * translation, sheering, and linear projections. You can combine these * transforms by multiplying multiple matrices in the order you want them * applied. diff --git a/cogl-vertex-buffer.h b/cogl-vertex-buffer.h index 73b51e84d..06ac22cb4 100644 --- a/cogl-vertex-buffer.h +++ b/cogl-vertex-buffer.h @@ -38,44 +38,39 @@ G_BEGIN_DECLS /** * SECTION:cogl-vertex-buffer * @short_description: An API for submitting extensible arrays of vertex - * attributes to OpenGL in a way that aims to minimise - * copying or reformatting of the original data. + * attributes to be mapped into the GPU for fast + * drawing. * - * The Attributes Buffer API is designed to be a fairly raw mechanism for + * For example to describe a textured triangle, you could create a new cogl + * vertex buffer with 3 vertices, and then you might add 2 attributes for each + * vertex: + * + * + * a "gl_Position" describing the (x,y,z) position for each vertex. + * + * + * a "gl_MultiTexCoord0" describing the (tx,ty) texture coordinates for each + * vertex. + * + * + * + * The Vertex Buffer API is designed to be a fairly raw mechanism for * developers to be able to submit geometry to Cogl in a format that can be - * directly consumed by an OpenGL driver and with awareness of the specific - * hardware being used then costly format conversion can also be avoided. + * directly consumed by an OpenGL driver and mapped into your GPU for fast + * re-use. It is designed to avoid repeated validation of the attributes by the + * driver; to minimize transport costs (considering indirect GLX use-cases) + * and to potentially avoid repeated format conversions when attributes are + * supplied in a format that is not natively supported by the GPU. * - * They are designed to work on top of buffer objects and developers should - * understand that attribute buffers are not that cheap to create but once they - * have been submitted they can be stored in GPU addressable memory and can - * be quickly reused. + * Although this API does allow you to modify attributes after they have been + * submitted to the GPU you should be aware that modification is not that + * cheap, since it implies validating the new data and potentially the + * OpenGL driver will need to reformat it for the GPU. * - * Although this API does allow you to modify attribute buffers after they have - * been submitted to the GPU you must note that modification is also not that - * cheap, so if at all possible think of tricks that let you reuse a static - * buffer. To help with this, it is possible to enable and disable individual - * attributes cheaply. - * - * Take for example attributes representing an elipse. If you were to submit - * color attributes, texture coordinates and normals, then you would be able - * to draw an elipses in the following different ways without modifying - * the vertex buffer, only by changing your source material. - * - * Flat colored elipse - * Textured elipse - * Smoothly lit textured elipse blended with the color. - * - * - * Another trick that can be used is submitting highly detailed vertices and - * then using cogl_vertex_buffer_draw_range_elements to sample sub-sets of - * the geometry or lower resolution geometry out from a fixed buffer. - * - * The API doesn't currently give you any control over the actual OpenGL buffer - * objects that are created, but you can expect that when you first submit - * your attributes they start off in one or more GL_STATIC_DRAW buffers. - * If you then update some of your attributes; then these attributes will - * normally be moved into new GL_DYNAMIC_DRAW draw buffers. + * If at all possible think of tricks that let you re-use static attributes, + * and if you do need to repeatedly update attributes (e.g. for some kind of + * morphing geometry) then only update and re-submit the specific attributes + * that have changed. */ /** @@ -94,7 +89,7 @@ cogl_vertex_buffer_new (guint n_vertices); * @attribute_name: The name of your attribute. It should be a valid GLSL * variable name and standard attribute types must use one * of following built-in names: (Note: they correspond to the - * built-in names in GLSL) + * built-in names of GLSL) * * "gl_Color" * "gl_Normal" @@ -106,8 +101,7 @@ cogl_vertex_buffer_new (guint n_vertices); * "gl_Color::active" or "gl_Color::inactive" * @n_components: The number of components per attribute and must be 1,2,3 or 4 * @gl_type: Specifies the data type of each component (GL_BYTE, GL_UNSIGNED_BYTE, - * GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT or - * GL_DOUBLE) + * GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT or GL_FLOAT) * @normalized: If GL_TRUE, this specifies that values stored in an integer * format should be mapped into the range [-1.0, 1.0] or [0.1, 1.0] * for unsigned values. If GL_FALSE they are converted to floats @@ -119,32 +113,33 @@ cogl_vertex_buffer_new (guint n_vertices); * stride for both attributes is 6. The special value 0 means the * values are stored sequentially in memory. * @pointer: This addresses the first attribute in the vertex array. (This - * must remain valid until you call cogl_vertex_buffer_submit) + * must remain valid until you call cogl_vertex_buffer_submit()) * * This function lets you add an attribute to a buffer. You either use one - * of the built-in names to add standard attributes, like positions, colors - * and normals or you can add custom attributes for use in shaders. + * of the built-in names such as "gl_Vertex", or "glMultiTexCoord0" to add + * standard attributes, like positions, colors and normals or you can add + * custom attributes for use in shaders. * - * Note: The number of vertices declared when first creating the vertex - * buffer is used to determine how many attribute values will be read from the - * supplied pointer. + * The number of vertices declared when calling cogl_vertex_buffer_new() + * determines how many attribute values will be read from the supplied pointer. * - * Note: the data supplied here isn't copied anywhere until you call - * cogl_vertex_buffer_submit, so the supplied pointer must remain valid - * until then. - * (This is an important optimisation since we can't create the underlying - * OpenGL buffer object until we know about all the attributes, and repeatedly - * copying large buffers of vertex data may be very costly) If you add - * attributes after submitting then you will need to re-call - * cogl_vertex_buffer_submit to commit the changes to the GPU. (Be carefull - * to minimize the number of calls to cogl_vertex_buffer_submit though) + * The data for your attribute isn't copied anywhere until you call + * cogl_vertex_buffer_submit(), so the supplied pointer must remain valid + * until then. If you are updating an attribute by re-adding it then you will + * also need to re-call cogl_vertex_buffer_submit() to commit the changes to + * the GPU. (Be carefull to minimize the number of calls to + * cogl_vertex_buffer_submit though.) * * Note: If you are interleving attributes it is assumed that that each * interleaved attribute starts no farther than +- stride bytes from the other * attributes it is interleved with. I.e. this is ok: + * * |-0-0-0-0-0-0-0-0-0-0| + * * This is not ok: + * * |- - - - -0-0-0-0-0-0 0 0 0 0| + * * (Though you can have multiple groups of interleved attributes) */ void @@ -162,38 +157,23 @@ cogl_vertex_buffer_add (CoglHandle handle, * @attribute_name: The name of a previously added attribute * * This function deletes an attribute from a buffer. You will need to - * call cogl_vertex_buffer_submit to commit this change to the GPU. + * call cogl_vertex_buffer_submit() to commit this change to the GPU. */ void cogl_vertex_buffer_delete (CoglHandle handle, const char *attribute_name); -/** - * cogl_vertex_buffer_enable: - * @handle: A vertex buffer handle - * @attribute_name: The name of the attribute you want to enable - * - * This function enables a previosuly added attribute - * - * Since it can be costly to add and remove new attributes to buffers; to make - * individual buffers more reuseable it is possible to enable and disable - * attributes before using a buffer for drawing. - * - * Note: You don't need to call cogl_vertex_buffer_submit after using this - * function - */ -void -cogl_vertex_buffer_enable (CoglHandle handle, - const char *attribute_name); - /** * cogl_vertex_buffer_submit: * @handle: A vertex buffer handle * - * This function copies all the user added attributes into buffer objects - * managed by the OpenGL driver. + * This function submits all the user added attributes to the GPU; once + * submitted the attributes can be used for drawing. * - * You should aim to minimize calls to this function. + * You should aim to minimize calls to this function since it implies + * validating your data; it potentially incurs a transport cost (especially if + * you are using GLX indirect rendering) and potentially a format conversion + * cost if the GPU doesn't natively support any of the given attribute formats. */ void cogl_vertex_buffer_submit (CoglHandle handle); @@ -203,19 +183,35 @@ cogl_vertex_buffer_submit (CoglHandle handle); * @handle: A vertex buffer handle * @attribute_name: The name of the attribute you want to disable * - * This function disables a previosuly added attribute + * This function disables a previosuly added attribute. * * Since it can be costly to add and remove new attributes to buffers; to make * individual buffers more reuseable it is possible to enable and disable * attributes before using a buffer for drawing. * - * Note: You don't need to call cogl_vertex_buffer_submit after using this - * function + * You don't need to call cogl_vertex_buffer_submit() after using this function. */ void cogl_vertex_buffer_disable (CoglHandle handle, const char *attribute_name); +/** + * cogl_vertex_buffer_enable: + * @handle: A vertex buffer handle + * @attribute_name: The name of the attribute you want to enable + * + * This function enables a previosuly disabled attribute. + * + * Since it can be costly to add and remove new attributes to buffers; to make + * individual buffers more reuseable it is possible to enable and disable + * attributes before using a buffer for drawing. + * + * You don't need to call cogl_vertex_buffer_submit() after using this function + */ +void +cogl_vertex_buffer_enable (CoglHandle handle, + const char *attribute_name); + /** * cogl_vertex_buffer_draw: * @handle: A vertex buffer handle diff --git a/cogl.h.in b/cogl.h.in index 988119dfd..680be2691 100644 --- a/cogl.h.in +++ b/cogl.h.in @@ -435,6 +435,100 @@ void cogl_set_fog (const CoglColor *fog_color, */ void cogl_paint_init (const CoglColor *color); +/** + * cogl_set_source: + * @material: A CoglMaterial object + * + * This function sets the source material that will be used to fill subsequent + * geometry emitted via the cogl API. + * + * Note: in the future we may add the ability to set a front facing material, + * and a back facing material, in which case this function will set both to the + * same. + * + * Since 1.0 + */ +void cogl_set_source (CoglHandle material); + +/** + * cogl_set_source_color: + * @color: a #CoglColor + * + * Sets the source color using normalized values for each component. + * This color will be used for any subsequent drawing operation. + * + * See also cogl_set_source_color4ub() and cogl_set_source_color4f() + * if you already have the color components. + * + * Since: 1.0 + */ +void cogl_set_source_color (const CoglColor *color); + +/** + * cogl_set_source_color4ub: + * @red: value of the red channel, between 0 and 255 + * @green: value of the green channel, between 0 and 255 + * @blue: value of the blue channel, between 0 and 255 + * @alpha: value of the alpha channel, between 0 and 255 + * + * This is a convenience function for creating a solid fill source material + * from the given color using unsigned bytes for each component. This + * color will be used for any subsequent drawing operation. + * + * The value for each component is an unsigned byte in the range + * between 0 and 255. + * + * Since: 1.0 + */ +void cogl_set_source_color4ub (guint8 red, + guint8 green, + guint8 blue, + guint8 alpha); + +/** + * cogl_set_source_color4f: + * @red: value of the red channel, between 0 and %1.0 + * @green: value of the green channel, between 0 and %1.0 + * @blue: value of the blue channel, between 0 and %1.0 + * @alpha: value of the alpha channel, between 0 and %1.0 + * + * This is a convenience function for creating a solid fill source material + * from the given color using normalized values for each component. This color + * will be used for any subsequent drawing operation. + * + * The value for each component is a fixed point number in the range + * between 0 and %1.0. If the values passed in are outside that + * range, they will be clamped. + * + * Since: 1.0 + */ +void cogl_set_source_color4f (float red, + float green, + float blue, + float alpha); + +/** + * cogl_set_source_texture: + * @texture_handle: The Cogl texture you want as your source + * + * This is a convenience function for creating a material with the first + * layer set to #texture_handle and setting that material as the source with + * cogl_set_source. + * + * Note: There is no interaction between calls to cogl_set_source_color + * and cogl_set_source_texture. If you need to blend a texture with a color then + * you can create a simple material like this: + * + * material = cogl_material_new (); + * cogl_material_set_color4ub (material, 0xff, 0x00, 0x00, 0x80); + * cogl_material_set_layer (material, 0, tex_handle); + * cogl_set_source (material); + * + * + * Since 1.0 + */ +void cogl_set_source_texture (CoglHandle texture_handle); + G_END_DECLS #undef __COGL_H_INSIDE__ diff --git a/doc/reference/cogl/cogl-docs.sgml b/doc/reference/cogl/cogl-docs.sgml index 32cbbe594..ba5d2cf89 100644 --- a/doc/reference/cogl/cogl-docs.sgml +++ b/doc/reference/cogl/cogl-docs.sgml @@ -53,17 +53,15 @@ - - - + + + + - - - diff --git a/doc/reference/cogl/cogl-sections.txt b/doc/reference/cogl/cogl-sections.txt index 72665e93d..582e4034e 100644 --- a/doc/reference/cogl/cogl-sections.txt +++ b/doc/reference/cogl/cogl-sections.txt @@ -1,6 +1,9 @@
cogl General API +COGL_INVALID_HANDLE +CoglHandle +CoglFuncPtr COGL_PIXEL_FORMAT_24 COGL_PIXEL_FORMAT_32 COGL_A_BIT @@ -12,6 +15,15 @@ COGL_UNPREMULT_MASK CoglPixelFormat CoglBufferTarget +cogl_create_context +cogl_destroy_context + +CoglFeatureFlags +cogl_get_features +cogl_features_available +cogl_check_extension +cogl_get_proc_address + cogl_perspective cogl_frustum cogl_setup_viewport @@ -26,6 +38,9 @@ cogl_scale cogl_translate cogl_rotate +cogl_get_bitmasks +cogl_paint_init + CoglClipStackState cogl_clip_set cogl_clip_set_from_path @@ -38,32 +53,27 @@ cogl_clip_ensure cogl_enable_depth_test cogl_enable_backface_culling cogl_fog_set -
- -
-cogl-util -Utility API -cogl_create_context -cogl_destroy_context -COGL_INVALID_HANDLE -CoglHandle -CoglFuncPtr - -CoglFeatureFlags -cogl_get_features -cogl_features_available - -cogl_get_proc_address -cogl_check_extension -cogl_get_bitmasks -cogl_paint_init +cogl_set_source +cogl_set_source_color +cogl_set_source_color4ub +cogl_set_source_color4f +cogl_set_source_texture + cogl_util_next_p2
cogl-primitives Primitives + +cogl_rectangle +cogl_rectangle_with_texture_coords +cogl_rectangles_with_texture_coords +cogl_rectangle_with_multitexture_coords +cogl_polygon + + cogl_path_new cogl_path_move_to cogl_path_close @@ -85,18 +95,7 @@ cogl_path_fill cogl_path_fill_preserve cogl_path_stroke cogl_path_stroke_preserve -cogl_set_source_color -cogl_set_source_color4ub -cogl_set_source_color4f -cogl_set_source_texture cogl_color - - -cogl_rectangle -cogl_polygon -cogl_rectangle_with_multitexture_coords -cogl_rectangle_with_texture_coords -cogl_rectangles_with_texture_coords
@@ -132,7 +131,6 @@ CoglBitmap cogl_bitmap_new_from_file cogl_bitmap_free cogl_bitmap_get_size_from_file -
@@ -166,13 +164,14 @@ cogl_program_uniform_matrix cogl-offscreen Offscreen Buffers cogl_offscreen_new_to_texture -cogl_offscreen_new_multisample cogl_offscreen_ref cogl_offscreen_unref cogl_is_offscreen cogl_offscreen_blit cogl_offscreen_blit_region cogl_draw_buffer + +cogl_offscreen_new_multisample
@@ -269,7 +268,6 @@ cogl_color_new cogl_color_copy cogl_color_free cogl_color_set_from_4ub -cogl_color_set_from_4d cogl_color_set_from_4f @@ -294,19 +292,20 @@ cogl_color_get_alpha_float
cogl-vertex-buffer Vertex Buffers -CoglVertexBufferAttribFlags -COGL_VERTEX_BUFFER_ATTRIB_FLAG_GL_TYPE_MASK -COGL_VERTEX_BUFFER_ATTRIB_FLAG_TYPE_MASK cogl_vertex_buffer_new cogl_vertex_buffer_ref cogl_vertex_buffer_unref cogl_vertex_buffer_add cogl_vertex_buffer_delete -cogl_vertex_buffer_enable -cogl_vertex_buffer_disable cogl_vertex_buffer_submit +cogl_vertex_buffer_disable +cogl_vertex_buffer_enable cogl_vertex_buffer_draw cogl_vertex_buffer_draw_range_elements + +CoglVertexBufferAttribFlags +COGL_VERTEX_BUFFER_ATTRIB_FLAG_GL_TYPE_MASK +COGL_VERTEX_BUFFER_ATTRIB_FLAG_TYPE_MASK
@@ -323,31 +322,29 @@ cogl_matrix_scale
cogl-material Materials -CoglMaterial -CoglMaterialFlags cogl_material_new cogl_material_ref cogl_material_unref -cogl_material_set_ambient -cogl_material_get_ambient -cogl_material_set_ambient_and_diffuse cogl_material_set_color cogl_material_set_color4ub +cogl_material_set_color4f cogl_material_get_color +cogl_material_set_ambient +cogl_material_get_ambient cogl_material_set_diffuse cogl_material_get_diffuse +cogl_material_set_ambient_and_diffuse cogl_material_set_emission cogl_material_get_emission cogl_material_set_specular cogl_material_get_specular cogl_material_set_shininess cogl_material_get_shininess -cogl_set_source + CoglMaterialAlphaFunc cogl_material_set_alpha_test_function CoglMaterialBlendFactor cogl_material_set_blend_factors -CoglMaterialLayer cogl_material_set_layer cogl_material_remove_layer CoglMaterialLayerCombineFunc @@ -358,14 +355,21 @@ cogl_material_set_layer_combine_arg_src CoglMaterialLayerCombineOp cogl_material_set_layer_combine_arg_op cogl_material_set_layer_matrix + +CoglMaterial +CoglMaterialFlags +CoglMaterialLayerPrivFlags cogl_material_set_layer_alpha_combine cogl_material_set_layer_rgb_combine +
+ +
+cogl-material-internals +Material Internals cogl_material_get_cogl_enable_flags CoglMaterialFlushOption -cogl_material_flush_gl_material_state -cogl_material_flush_gl_alpha_func -cogl_material_flush_gl_blend_func cogl_material_flush_gl_state +CoglMaterialLayer cogl_material_get_layers CoglMaterialLayerType cogl_material_layer_get_type @@ -373,8 +377,4 @@ CoglMaterialLayerFlags cogl_material_layer_get_flags cogl_material_layer_get_texture cogl_material_layer_flush_gl_sampler_state - - -CoglMaterialLayerPrivFlags
-