[mutter] cogl: Remove API implicitly switching between built in pipelines



commit 77b3c0d6707ae816ef1297750a6ae67fb97a8904
Author: Jonas Ã…dahl <jadahl gmail com>
Date:   Fri Nov 22 16:49:07 2019 +0100

    cogl: Remove API implicitly switching between built in pipelines
    
    This means cogl_set_source_color*() that switches to the opaque or
    blending pipeline, or cogl_source_set_texture() which switches to the
    texture pipeline.
    
    Left is the opaque pipeline, as it is still used to compare other
    pipelines to check whether they are opaque or not, and as the default
    pipeline still pushed to the source stack during initialization.
    
    https://gitlab.gnome.org/GNOME/mutter/merge_requests/935

 cogl/cogl/cogl-context-private.h |   7 ++-
 cogl/cogl/cogl-context.c         |   7 +--
 cogl/cogl/cogl.c                 |  58 ----------------------
 cogl/cogl/cogl1-context.h        | 104 ---------------------------------------
 4 files changed, 4 insertions(+), 172 deletions(-)
---
diff --git a/cogl/cogl/cogl-context-private.h b/cogl/cogl/cogl-context-private.h
index 4b7567c37..6a56e1ee4 100644
--- a/cogl/cogl/cogl-context-private.h
+++ b/cogl/cogl/cogl-context-private.h
@@ -145,10 +145,9 @@ struct _CoglContext
   GArray           *texture_units;
   int               active_texture_unit;
 
-  /* Pipelines */
-  CoglPipeline     *opaque_color_pipeline; /* used for set_source_color */
-  CoglPipeline     *blended_color_pipeline; /* used for set_source_color */
-  CoglPipeline     *texture_pipeline; /* used for set_source_texture */
+  /* Only used for comparing other pipelines when reading pixels. */
+  CoglPipeline     *opaque_color_pipeline;
+
   GString          *codegen_header_buffer;
   GString          *codegen_source_buffer;
   GString          *codegen_boilerplate_buffer;
diff --git a/cogl/cogl/cogl-context.c b/cogl/cogl/cogl-context.c
index 9d1880f20..b10402fa4 100644
--- a/cogl/cogl/cogl-context.c
+++ b/cogl/cogl/cogl-context.c
@@ -255,8 +255,7 @@ cogl_context_new (CoglDisplay *display,
     }
 
   context->opaque_color_pipeline = cogl_pipeline_new (context);
-  context->blended_color_pipeline = cogl_pipeline_new (context);
-  context->texture_pipeline = cogl_pipeline_new (context);
+
   context->codegen_header_buffer = g_string_new ("");
   context->codegen_source_buffer = g_string_new ("");
   context->codegen_boilerplate_buffer = g_string_new ("");
@@ -414,10 +413,6 @@ _cogl_context_free (CoglContext *context)
 
   if (context->opaque_color_pipeline)
     cogl_object_unref (context->opaque_color_pipeline);
-  if (context->blended_color_pipeline)
-    cogl_object_unref (context->blended_color_pipeline);
-  if (context->texture_pipeline)
-    cogl_object_unref (context->texture_pipeline);
 
   if (context->blit_texture_pipeline)
     cogl_object_unref (context->blit_texture_pipeline);
diff --git a/cogl/cogl/cogl.c b/cogl/cogl/cogl.c
index 30e67fb3d..f3d420332 100644
--- a/cogl/cogl/cogl.c
+++ b/cogl/cogl/cogl.c
@@ -123,29 +123,6 @@ cogl_get_backface_culling_enabled (void)
   return ctx->legacy_backface_culling_enabled;
 }
 
-void
-cogl_set_source_color (const CoglColor *color)
-{
-  CoglPipeline *pipeline;
-
-  _COGL_GET_CONTEXT (ctx, NO_RETVAL);
-
-  if (cogl_color_get_alpha_byte (color) == 0xff)
-    {
-      cogl_pipeline_set_color (ctx->opaque_color_pipeline, color);
-      pipeline = ctx->opaque_color_pipeline;
-    }
-  else
-    {
-      CoglColor premultiplied = *color;
-      cogl_color_premultiply (&premultiplied);
-      cogl_pipeline_set_color (ctx->blended_color_pipeline, &premultiplied);
-      pipeline = ctx->blended_color_pipeline;
-    }
-
-  cogl_set_source (pipeline);
-}
-
 gboolean
 cogl_has_feature (CoglContext *ctx, CoglFeatureID feature)
 {
@@ -339,41 +316,6 @@ cogl_set_source (void *material_or_pipeline)
     }
 }
 
-void
-cogl_set_source_texture (CoglTexture *texture)
-{
-  _COGL_GET_CONTEXT (ctx, NO_RETVAL);
-
-  g_return_if_fail (texture != NULL);
-
-  cogl_pipeline_set_layer_texture (ctx->texture_pipeline, 0, texture);
-  cogl_set_source (ctx->texture_pipeline);
-}
-
-void
-cogl_set_source_color4ub (uint8_t red,
-                          uint8_t green,
-                          uint8_t blue,
-                          uint8_t alpha)
-{
-  CoglColor c = { 0, };
-
-  cogl_color_init_from_4ub (&c, red, green, blue, alpha);
-  cogl_set_source_color (&c);
-}
-
-void
-cogl_set_source_color4f (float red,
-                         float green,
-                         float blue,
-                         float alpha)
-{
-  CoglColor c = { 0, };
-
-  cogl_color_init_from_4f (&c, red, green, blue, alpha);
-  cogl_set_source_color (&c);
-}
-
 /* Scale from OpenGL normalized device coordinates (ranging from -1 to 1)
  * to Cogl window/framebuffer coordinates (ranging from 0 to buffer-size) with
  * (0,0) being top left. */
diff --git a/cogl/cogl/cogl1-context.h b/cogl/cogl/cogl1-context.h
index 32c03c084..f16cbcd18 100644
--- a/cogl/cogl/cogl1-context.h
+++ b/cogl/cogl/cogl1-context.h
@@ -212,110 +212,6 @@ COGL_DEPRECATED
 void
 cogl_pop_source (void);
 
-/**
- * cogl_set_source_color:
- * @color: a #CoglColor
- *
- * This is a convenience function for creating a solid fill source material
- * from the given color. This color will be used for any subsequent drawing
- * operation.
- *
- * The color will be premultiplied by Cogl, so the color should be
- * non-premultiplied. For example: use (1.0, 0.0, 0.0, 0.5) for
- * semi-transparent red.
- *
- * See also cogl_set_source_color4ub() and cogl_set_source_color4f()
- * if you already have the color components.
- *
- * Since: 1.0
- * Deprecated: 1.16: Latest drawing apis all take an explicit
- *                   #CoglPipeline argument so this stack of
- *                   #CoglMaterial<!-- -->s shouldn't be used.
- */
-COGL_DEPRECATED
-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
- * Deprecated: 1.16: Latest drawing apis all take an explicit
- *                   #CoglPipeline argument so this stack of
- *                   #CoglMaterial<!-- -->s shouldn't be used.
- */
-COGL_DEPRECATED
-void
-cogl_set_source_color4ub (uint8_t red,
-                          uint8_t green,
-                          uint8_t blue,
-                          uint8_t 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
- * Deprecated: 1.16: Latest drawing apis all take an explicit
- *                   #CoglPipeline argument so this stack of
- *                   #CoglMaterial<!-- -->s shouldn't be used.
- */
-COGL_DEPRECATED
-void
-cogl_set_source_color4f (float red,
-                         float green,
-                         float blue,
-                         float alpha);
-
-/**
- * cogl_set_source_texture:
- * @texture: The #CoglTexture you want as your source
- *
- * This is a convenience function for creating a material with the first
- * layer set to @texture 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:
- * <programlisting>
- * 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);
- * </programlisting>
- *
- * Since: 1.0
- * Deprecated: 1.16: Latest drawing apis all take an explicit
- *                   #CoglPipeline argument so this stack of
- *                   #CoglMaterial<!-- -->s shouldn't be used.
- */
-COGL_DEPRECATED
-void
-cogl_set_source_texture (CoglTexture *texture);
-
 /**
  * cogl_flush:
  *


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]