Blame src/shell-glsl-quad.h

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__ */