mirror of
https://github.com/brl/mutter.git
synced 2025-08-01 14:15:30 +00:00
Add _primitive_draw to replace _framebuffer_draw_primitive
When splitting out the CoglPath api we saw that we would be left with inconsistent drawing apis if the drawing apis in core Cogl were lumped into the cogl_framebuffer_ api considering other Cogl sub-libraries or that others will want to create higher level drawing apis outside of Cogl but can't use the same namespace. So that we can aim for a more consistent style this adds a cogl_primitive_draw() api, comparable to cogl_path_fill() or cogl_pango_show_layout() that's intended to replace cogl_framebuffer_draw_primitive() Note: the attribute and rectangle drawing apis are still in the cogl_framebuffer_ namespace and this might potentially change but in these cases there is no single object representing the thing being drawn so it seems a more reasonable they they live in the framebuffer namespace for now. Note: the cogl_framebuffer_draw_primitive() api isn't removed by this patch so it can more conveniently be cherry picked to the 1.16 branch so we can mark it deprecated for a short while. Even though it's marked as experimental api we know that there are people using the api so we'd like to give them a chance to switch to the new api. Reviewed-by: Neil Roberts <neil@linux.intel.com> (cherry picked from commit 418912b93ff81a47f9b38114d05335ab76277c48) Conflicts: cogl-pango/cogl-pango-display-list.c cogl/Makefile.am cogl/cogl-framebuffer.c cogl/cogl-pipeline-layer-state.h cogl/cogl2-path.c cogl/driver/gl/cogl-clip-stack-gl.c
This commit is contained in:

committed by
Neil Roberts

parent
5580baeffb
commit
e9f721216e
@@ -32,6 +32,11 @@
|
||||
#include <windows.h>
|
||||
#endif /* COGL_HAS_WIN32_SUPPORT */
|
||||
|
||||
/* We forward declare the CoglFramebuffer type here to avoid some circular
|
||||
* dependency issues with the following headers.
|
||||
*/
|
||||
typedef struct _CoglFramebuffer CoglFramebuffer;
|
||||
|
||||
#ifdef COGL_ENABLE_EXPERIMENTAL_2_0_API
|
||||
#include <cogl/cogl2-path.h>
|
||||
#else
|
||||
@@ -87,8 +92,6 @@ COGL_BEGIN_DECLS
|
||||
* configuration.
|
||||
*/
|
||||
|
||||
typedef struct _CoglFramebuffer CoglFramebuffer;
|
||||
|
||||
#ifdef COGL_ENABLE_EXPERIMENTAL_API
|
||||
|
||||
#define COGL_FRAMEBUFFER(X) ((CoglFramebuffer *)(X))
|
||||
@@ -1387,9 +1390,8 @@ cogl_framebuffer_draw_rectangle (CoglFramebuffer *framebuffer,
|
||||
* This is a high level drawing api that can handle any kind of
|
||||
* #CoglMetaTexture texture such as #CoglTexture2DSliced textures
|
||||
* which may internally be comprised of multiple low-level textures.
|
||||
* This is unlike low-level drawing apis such as
|
||||
* cogl_framebuffer_draw_primitive() or
|
||||
* cogl_framebuffer_draw_attributes() which only support low level
|
||||
* This is unlike low-level drawing apis such as cogl_primitive_draw()
|
||||
* or cogl_framebuffer_draw_attributes() which only support low level
|
||||
* texture types that are directly supported by GPUs such as
|
||||
* #CoglTexture2D.
|
||||
*
|
||||
@@ -1454,10 +1456,9 @@ cogl_framebuffer_draw_textured_rectangle (CoglFramebuffer *framebuffer,
|
||||
* #CoglMetaTexture texture for the first layer such as
|
||||
* #CoglTexture2DSliced textures which may internally be comprised of
|
||||
* multiple low-level textures. This is unlike low-level drawing apis
|
||||
* such as cogl_framebuffer_draw_primitive() or
|
||||
* cogl_framebuffer_draw_attributes() which only support low level
|
||||
* texture types that are directly supported by GPUs such as
|
||||
* #CoglTexture2D.
|
||||
* such as cogl_primitive_draw() or cogl_framebuffer_draw_attributes()
|
||||
* which only support low level texture types that are directly
|
||||
* supported by GPUs such as #CoglTexture2D.
|
||||
*
|
||||
* <note>This api can not currently handle multiple high-level meta
|
||||
* texture layers. The first layer may be a high level meta texture
|
||||
@@ -1562,9 +1563,8 @@ cogl_framebuffer_draw_rectangles (CoglFramebuffer *framebuffer,
|
||||
* This is a high level drawing api that can handle any kind of
|
||||
* #CoglMetaTexture texture such as #CoglTexture2DSliced textures
|
||||
* which may internally be comprised of multiple low-level textures.
|
||||
* This is unlike low-level drawing apis such as
|
||||
* cogl_framebuffer_draw_primitive() or
|
||||
* cogl_framebuffer_draw_attributes() which only support low level
|
||||
* This is unlike low-level drawing apis such as cogl_primitive_draw()
|
||||
* or cogl_framebuffer_draw_attributes() which only support low level
|
||||
* texture types that are directly supported by GPUs such as
|
||||
* #CoglTexture2D.
|
||||
*
|
||||
|
Reference in New Issue
Block a user