|
Packit |
d345d1 |
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
|
Packit |
d345d1 |
#ifndef __SHELL_GLSL_QUAD_H__
|
|
Packit |
d345d1 |
#define __SHELL_GLSL_QUAD_H__
|
|
Packit |
d345d1 |
|
|
Packit |
d345d1 |
#include "st.h"
|
|
Packit |
d345d1 |
#include <gtk/gtk.h>
|
|
Packit |
d345d1 |
|
|
Packit |
d345d1 |
/**
|
|
Packit |
d345d1 |
* ShellSnippetHook:
|
|
Packit |
d345d1 |
* Temporary hack to work around Cogl not exporting CoglSnippetHook in
|
|
Packit |
d345d1 |
* the 1.0 API. Don't use.
|
|
Packit |
d345d1 |
*/
|
|
Packit |
d345d1 |
typedef enum {
|
|
Packit |
d345d1 |
/* Per pipeline vertex hooks */
|
|
Packit |
d345d1 |
SHELL_SNIPPET_HOOK_VERTEX = 0,
|
|
Packit |
d345d1 |
SHELL_SNIPPET_HOOK_VERTEX_TRANSFORM,
|
|
Packit |
d345d1 |
|
|
Packit |
d345d1 |
/* Per pipeline fragment hooks */
|
|
Packit |
d345d1 |
SHELL_SNIPPET_HOOK_FRAGMENT = 2048,
|
|
Packit |
d345d1 |
|
|
Packit |
d345d1 |
/* Per layer vertex hooks */
|
|
Packit |
d345d1 |
SHELL_SNIPPET_HOOK_TEXTURE_COORD_TRANSFORM = 4096,
|
|
Packit |
d345d1 |
|
|
Packit |
d345d1 |
/* Per layer fragment hooks */
|
|
Packit |
d345d1 |
SHELL_SNIPPET_HOOK_LAYER_FRAGMENT = 6144,
|
|
Packit |
d345d1 |
SHELL_SNIPPET_HOOK_TEXTURE_LOOKUP
|
|
Packit |
d345d1 |
} ShellSnippetHook;
|
|
Packit |
d345d1 |
|
|
Packit |
d345d1 |
#define SHELL_TYPE_GLSL_QUAD (shell_glsl_quad_get_type ())
|
|
Packit |
d345d1 |
G_DECLARE_DERIVABLE_TYPE (ShellGLSLQuad, shell_glsl_quad,
|
|
Packit |
d345d1 |
SHELL, GLSL_QUAD, ClutterActor)
|
|
Packit |
d345d1 |
|
|
Packit |
d345d1 |
struct _ShellGLSLQuadClass
|
|
Packit |
d345d1 |
{
|
|
Packit |
d345d1 |
ClutterActorClass parent_class;
|
|
Packit |
d345d1 |
|
|
Packit |
d345d1 |
CoglPipeline *base_pipeline;
|
|
Packit |
d345d1 |
|
|
Packit |
d345d1 |
void (*build_pipeline) (ShellGLSLQuad *effect);
|
|
Packit |
d345d1 |
};
|
|
Packit |
d345d1 |
|
|
Packit |
d345d1 |
void shell_glsl_quad_add_glsl_snippet (ShellGLSLQuad *quad,
|
|
Packit |
d345d1 |
ShellSnippetHook hook,
|
|
Packit |
d345d1 |
const char *declarations,
|
|
Packit |
d345d1 |
const char *code,
|
|
Packit |
d345d1 |
gboolean is_replace);
|
|
Packit |
d345d1 |
|
|
Packit |
d345d1 |
int shell_glsl_quad_get_uniform_location (ShellGLSLQuad *quad,
|
|
Packit |
d345d1 |
const char *name);
|
|
Packit |
d345d1 |
void shell_glsl_quad_set_uniform_float (ShellGLSLQuad *quad,
|
|
Packit |
d345d1 |
int uniform,
|
|
Packit |
d345d1 |
int n_components,
|
|
Packit |
d345d1 |
int total_count,
|
|
Packit |
d345d1 |
const float *value);
|
|
Packit |
d345d1 |
|
|
Packit |
d345d1 |
#endif /* __SHELL_GLSL_QUAD_H__ */
|