summaryrefslogtreecommitdiff
path: root/src/compositor/cogl-utils.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/compositor/cogl-utils.c')
-rw-r--r--src/compositor/cogl-utils.c114
1 files changed, 0 insertions, 114 deletions
diff --git a/src/compositor/cogl-utils.c b/src/compositor/cogl-utils.c
deleted file mode 100644
index 0a39755a5..000000000
--- a/src/compositor/cogl-utils.c
+++ /dev/null
@@ -1,114 +0,0 @@
-/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
-/*
- * Utilities for use with Cogl
- *
- * Copyright 2010 Red Hat, Inc.
- * Copyright 2010 Intel Corporation
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "config.h"
-
-#include "clutter/clutter.h"
-#include "compositor/cogl-utils.h"
-
-/* Based on gnome-shell/src/st/st-private.c:_st_create_texture_material.c */
-
-/**
- * meta_create_texture_pipeline:
- * @src_texture: (nullable): texture to use initially for the layer
- *
- * Creates a pipeline with a single layer. Using a common template
- * makes it easier for Cogl to share a shader for different uses in
- * Mutter.
- *
- * Return value: (transfer full): a newly created #CoglPipeline
- */
-CoglPipeline *
-meta_create_texture_pipeline (CoglTexture *src_texture)
-{
- static CoglPipeline *texture_pipeline_template = NULL;
- CoglPipeline *pipeline;
-
- /* The only state used in the pipeline that would affect the shader
- generation is the texture type on the layer. Therefore we create
- a template pipeline which sets this state and all texture
- pipelines are created as a copy of this. That way Cogl can find
- the shader state for the pipeline more quickly by looking at the
- pipeline ancestry instead of resorting to the shader cache. */
- if (G_UNLIKELY (texture_pipeline_template == NULL))
- {
- CoglContext *ctx =
- clutter_backend_get_cogl_context (clutter_get_default_backend ());
-
- texture_pipeline_template = cogl_pipeline_new (ctx);
- cogl_pipeline_set_layer_null_texture (texture_pipeline_template, 0);
- }
-
- pipeline = cogl_pipeline_copy (texture_pipeline_template);
-
- if (src_texture != NULL)
- cogl_pipeline_set_layer_texture (pipeline, 0, src_texture);
-
- return pipeline;
-}
-
-/**
- * meta_create_texture:
- * @width: width of the texture to create
- * @height: height of the texture to create
- * @components; components to store in the texture (color or alpha)
- * @flags: flags that affect the allocation behavior
- *
- * Creates a texture of the given size with the specified components
- * for use as a frame buffer object.
- *
- * If %META_TEXTURE_ALLOW_SLICING is present in @flags, and the texture
- * is larger than the texture size limits of the system, then the texture
- * will be created as a sliced texture. This also will cause problems
- * with using the texture with GLSL, and is more likely to be an issue
- * since all GL implementations have texture size limits, and they can
- * be as small as 2048x2048 on reasonably current systems.
- */
-CoglTexture *
-meta_create_texture (int width,
- int height,
- CoglTextureComponents components,
- MetaTextureFlags flags)
-{
- ClutterBackend *backend = clutter_get_default_backend ();
- CoglContext *ctx = clutter_backend_get_cogl_context (backend);
- CoglTexture *texture;
-
- texture = COGL_TEXTURE (cogl_texture_2d_new_with_size (ctx, width, height));
- cogl_texture_set_components (texture, components);
-
- if ((flags & META_TEXTURE_ALLOW_SLICING) != 0)
- {
- /* To find out if we need to slice the texture, we have to go ahead and force storage
- * to be allocated
- */
- GError *catch_error = NULL;
- if (!cogl_texture_allocate (texture, &catch_error))
- {
- g_error_free (catch_error);
- cogl_object_unref (texture);
- texture = COGL_TEXTURE (cogl_texture_2d_sliced_new_with_size (ctx, width, height, COGL_TEXTURE_MAX_WASTE));
- cogl_texture_set_components (texture, components);
- }
- }
-
- return texture;
-}