summaryrefslogtreecommitdiff
path: root/cogl/cogl/driver/gl/cogl-pipeline-opengl-private.h
diff options
context:
space:
mode:
Diffstat (limited to 'cogl/cogl/driver/gl/cogl-pipeline-opengl-private.h')
-rw-r--r--cogl/cogl/driver/gl/cogl-pipeline-opengl-private.h172
1 files changed, 0 insertions, 172 deletions
diff --git a/cogl/cogl/driver/gl/cogl-pipeline-opengl-private.h b/cogl/cogl/driver/gl/cogl-pipeline-opengl-private.h
deleted file mode 100644
index 3626fd16c..000000000
--- a/cogl/cogl/driver/gl/cogl-pipeline-opengl-private.h
+++ /dev/null
@@ -1,172 +0,0 @@
-/*
- * Cogl
- *
- * A Low Level GPU Graphics and Utilities API
- *
- * Copyright (C) 2010 Intel Corporation.
- *
- * Permission is hereby granted, free of charge, to any person
- * obtaining a copy of this software and associated documentation
- * files (the "Software"), to deal in the Software without
- * restriction, including without limitation the rights to use, copy,
- * modify, merge, publish, distribute, sublicense, and/or sell copies
- * of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be
- * included in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- *
- *
- * Authors:
- * Robert Bragg <robert@linux.intel.com>
- */
-
-#ifndef __COGL_PIPELINE_OPENGL_PRIVATE_H
-#define __COGL_PIPELINE_OPENGL_PRIVATE_H
-
-#include "cogl-pipeline-private.h"
-#include "cogl-matrix-stack.h"
-
-/*
- * cogl-pipeline.c owns the GPU's texture unit state so we have some
- * private structures for describing the current state of a texture
- * unit that we track in a per context array (ctx->texture_units) that
- * grows according to the largest texture unit used so far...
- *
- * Roughly speaking the members in this structure are of two kinds:
- * either they are a low level reflection of the state we send to
- * OpenGL or they are for high level meta data associated with the
- * texture unit when flushing CoglPipelineLayers that is typically
- * used to optimize subsequent re-flushing of the same layer.
- *
- * The low level members are at the top, and the high level members
- * start with the .layer member.
- */
-typedef struct _CoglTextureUnit
-{
- /* The base 0 texture unit index which can be used with
- * glActiveTexture () */
- int index;
-
- /* The GL target currently glEnabled or 0 if nothing is
- * enabled. This is only used by the fixed pipeline fragend */
- GLenum enabled_gl_target;
-
- /* The raw GL texture object name for which we called glBindTexture when
- * we flushed the last layer. (NB: The CoglTexture associated
- * with a layer may represent more than one GL texture) */
- GLuint gl_texture;
- /* The target of the GL texture object. This is just used so that we
- * can quickly determine the intended target to flush when
- * dirty_gl_texture == TRUE */
- GLenum gl_target;
-
- /* We have many components in Cogl that need to temporarily bind arbitrary
- * textures e.g. to query texture object parameters and since we don't
- * want that to result in too much redundant reflushing of layer state
- * when all that's needed is to re-bind the layer's gl_texture we use this
- * to track when the unit->gl_texture state is out of sync with the GL
- * texture object really bound too (GL_TEXTURE0+unit->index).
- *
- * XXX: as a further optimization cogl-pipeline.c uses a convention
- * of always using texture unit 1 for these transient bindings so we
- * can assume this is only ever TRUE for unit 1.
- */
- gboolean dirty_gl_texture;
-
- /* A matrix stack giving us the means to associate a texture
- * transform matrix with the texture unit. */
- CoglMatrixStack *matrix_stack;
-
- /*
- * Higher level layer state associated with the unit...
- */
-
- /* The CoglPipelineLayer whose state was flushed to update this
- * texture unit last.
- *
- * This will be set to NULL if the layer is modified or freed which
- * means when we come to flush a layer; if this pointer is still
- * valid and == to the layer being flushed we don't need to update
- * any texture unit state. */
- CoglPipelineLayer *layer;
-
- /* To help minimize the state changes required we track the
- * difference flags associated with the layer whose state was last
- * flushed to update this texture unit.
- *
- * Note: we track this explicitly because .layer may get invalidated
- * if that layer is modified or deleted. Even if the layer is
- * invalidated though these flags can be used to optimize the state
- * flush of the next layer
- */
- unsigned long layer_changes_since_flush;
-
- /* Whenever a CoglTexture's internal GL texture storage changes
- * cogl-pipeline.c is notified with a call to
- * _cogl_pipeline_texture_storage_change_notify which inturn sets
- * this to TRUE for each texture unit that it is currently bound
- * too. When we later come to flush some pipeline state then we will
- * always check this to potentially force an update of the texture
- * state even if the pipeline hasn't changed. */
- gboolean texture_storage_changed;
-
-} CoglTextureUnit;
-
-CoglTextureUnit *
-_cogl_get_texture_unit (int index_);
-
-void
-_cogl_destroy_texture_units (CoglContext *ctx);
-
-void
-_cogl_set_active_texture_unit (int unit_index);
-
-void
-_cogl_bind_gl_texture_transient (GLenum gl_target,
- GLuint gl_texture);
-
-void
-_cogl_delete_gl_texture (GLuint gl_texture);
-
-void
-_cogl_pipeline_flush_gl_state (CoglContext *context,
- CoglPipeline *pipeline,
- CoglFramebuffer *framebuffer,
- gboolean skip_gl_state,
- gboolean unknown_color_alpha);
-
-void
-_cogl_glsl_shader_set_source_with_boilerplate (CoglContext *ctx,
- GLuint shader_gl_handle,
- GLenum shader_gl_type,
- CoglPipeline *pipeline,
- GLsizei count_in,
- const char **strings_in,
- const GLint *lengths_in);
-
-void
-_cogl_sampler_gl_init (CoglContext *context,
- CoglSamplerCacheEntry *entry);
-
-void
-_cogl_sampler_gl_free (CoglContext *context,
- CoglSamplerCacheEntry *entry);
-
-void
-_cogl_gl_set_uniform (CoglContext *ctx,
- GLint location,
- const CoglBoxedValue *value);
-
-#endif /* __COGL_PIPELINE_OPENGL_PRIVATE_H */
-