Blender  V2.59
Classes | Typedefs | Enumerations | Functions
GPU_material.h File Reference

Go to the source code of this file.

Classes

struct  GPUNodeStack
struct  GPUShadeInput
struct  GPUShadeResult

Typedefs

typedef struct GPUNode GPUNode
typedef struct GPUNodeLink GPUNodeLink
typedef struct GPUMaterial GPUMaterial
typedef struct GPULamp GPULamp
typedef enum GPUType GPUType
typedef enum GPUBuiltin GPUBuiltin
typedef enum GPUBlendMode GPUBlendMode
typedef struct GPUNodeStack GPUNodeStack
typedef struct GPUShadeInput GPUShadeInput
typedef struct GPUShadeResult GPUShadeResult

Enumerations

enum  GPUType {
  GPU_NONE = 0, GPU_FLOAT = 1, GPU_VEC2 = 2, GPU_VEC3 = 3,
  GPU_VEC4 = 4, GPU_MAT3 = 9, GPU_MAT4 = 16, GPU_TEX1D = 1001,
  GPU_TEX2D = 1002, GPU_SHADOW2D = 1003, GPU_ATTRIB = 3001
}
enum  GPUBuiltin {
  GPU_VIEW_MATRIX = 1, GPU_OBJECT_MATRIX = 2, GPU_INVERSE_VIEW_MATRIX = 4, GPU_INVERSE_OBJECT_MATRIX = 8,
  GPU_VIEW_POSITION = 16, GPU_VIEW_NORMAL = 32, GPU_OBCOLOR = 64
}
enum  GPUBlendMode { GPU_BLEND_SOLID = 0, GPU_BLEND_ADD = 1, GPU_BLEND_ALPHA = 2, GPU_BLEND_CLIP = 4 }

Functions

GPUNodeLinkGPU_attribute (int type, const char *name)
GPUNodeLinkGPU_uniform (float *num)
GPUNodeLinkGPU_dynamic_uniform (float *num)
GPUNodeLinkGPU_image (struct Image *ima, struct ImageUser *iuser)
GPUNodeLinkGPU_texture (int size, float *pixels)
GPUNodeLinkGPU_dynamic_texture (struct GPUTexture *tex)
GPUNodeLinkGPU_socket (GPUNodeStack *sock)
GPUNodeLinkGPU_builtin (GPUBuiltin builtin)
int GPU_link (GPUMaterial *mat, const char *name,...)
int GPU_stack_link (GPUMaterial *mat, const char *name, GPUNodeStack *in, GPUNodeStack *out,...)
void GPU_material_output_link (GPUMaterial *material, GPUNodeLink *link)
void GPU_material_enable_alpha (GPUMaterial *material)
GPUBlendMode GPU_material_blend_mode (GPUMaterial *material, float obcol[4])
GPUMaterialGPU_material_from_blender (struct Scene *scene, struct Material *ma)
void GPU_material_free (struct Material *ma)
void GPU_materials_free (void)
void GPU_material_bind (GPUMaterial *material, int oblay, int viewlay, double time, int mipmap)
void GPU_material_bind_uniforms (GPUMaterial *material, float obmat[][4], float viewmat[][4], float viewinv[][4], float obcol[4])
void GPU_material_unbind (GPUMaterial *material)
int GPU_material_bound (GPUMaterial *material)
void GPU_material_vertex_attributes (GPUMaterial *material, struct GPUVertexAttribs *attrib)
void GPU_shadeinput_set (GPUMaterial *mat, struct Material *ma, GPUShadeInput *shi)
void GPU_shaderesult_set (GPUShadeInput *shi, GPUShadeResult *shr)
GPULampGPU_lamp_from_blender (struct Scene *scene, struct Object *ob, struct Object *par)
void GPU_lamp_free (struct Object *ob)
int GPU_lamp_has_shadow_buffer (GPULamp *lamp)
void GPU_lamp_shadow_buffer_bind (GPULamp *lamp, float viewmat[][4], int *winsize, float winmat[][4])
void GPU_lamp_shadow_buffer_unbind (GPULamp *lamp)
void GPU_lamp_update (GPULamp *lamp, int lay, int hide, float obmat[][4])
void GPU_lamp_update_colors (GPULamp *lamp, float r, float g, float b, float energy)
int GPU_lamp_shadow_layer (GPULamp *lamp)

Detailed Description

Definition in file GPU_material.h.


Typedef Documentation

typedef enum GPUBlendMode GPUBlendMode
typedef enum GPUBuiltin GPUBuiltin
typedef struct GPULamp GPULamp

Definition at line 63 of file GPU_material.h.

typedef struct GPUMaterial GPUMaterial

Definition at line 62 of file GPU_material.h.

typedef struct GPUNode GPUNode

Definition at line 60 of file GPU_material.h.

typedef struct GPUNodeLink GPUNodeLink

Definition at line 61 of file GPU_material.h.

typedef struct GPUNodeStack GPUNodeStack
typedef struct GPUShadeInput GPUShadeInput
typedef enum GPUType GPUType

Enumeration Type Documentation

Enumerator:
GPU_BLEND_SOLID 
GPU_BLEND_ADD 
GPU_BLEND_ALPHA 
GPU_BLEND_CLIP 

Definition at line 91 of file GPU_material.h.

enum GPUBuiltin
Enumerator:
GPU_VIEW_MATRIX 
GPU_OBJECT_MATRIX 
GPU_INVERSE_VIEW_MATRIX 
GPU_INVERSE_OBJECT_MATRIX 
GPU_VIEW_POSITION 
GPU_VIEW_NORMAL 
GPU_OBCOLOR 

Definition at line 81 of file GPU_material.h.

enum GPUType
Enumerator:
GPU_NONE 
GPU_FLOAT 
GPU_VEC2 
GPU_VEC3 
GPU_VEC4 
GPU_MAT3 
GPU_MAT4 
GPU_TEX1D 
GPU_TEX2D 
GPU_SHADOW2D 
GPU_ATTRIB 

Definition at line 67 of file GPU_material.h.


Function Documentation

GPUNodeLink* GPU_attribute ( int  type,
const char *  name 
)
GPUNodeLink* GPU_builtin ( GPUBuiltin  builtin)
GPUNodeLink* GPU_dynamic_texture ( struct GPUTexture tex)

Definition at line 1211 of file gpu_codegen.c.

References GPUNodeLink::dynamic, GPUNodeLink::dynamictex, GPU_node_link_create(), and link().

Referenced by shade_one_light().

GPUNodeLink* GPU_dynamic_uniform ( float *  num)
GPUNodeLink* GPU_image ( struct Image ima,
struct ImageUser iuser 
)
void GPU_lamp_free ( struct Object ob)
GPULamp* GPU_lamp_from_blender ( struct Scene scene,
struct Object ob,
struct Object par 
)
int GPU_lamp_has_shadow_buffer ( GPULamp lamp)
void GPU_lamp_shadow_buffer_bind ( GPULamp lamp,
float  viewmat[][4],
int *  winsize,
float  winmat[][4] 
)
void GPU_lamp_shadow_buffer_unbind ( GPULamp lamp)
int GPU_lamp_shadow_layer ( GPULamp lamp)
void GPU_lamp_update ( GPULamp lamp,
int  lay,
int  hide,
float  obmat[][4] 
)
void GPU_lamp_update_colors ( GPULamp lamp,
float  r,
float  g,
float  b,
float  energy 
)

Definition at line 1460 of file gpu_material.c.

References GPULamp::col, GPULamp::energy, LA_NEG, and GPULamp::mode.

Referenced by gpu_render_lamp_update(), and KX_LightObject::Update().

int GPU_link ( GPUMaterial mat,
const char *  name,
  ... 
)
void GPU_material_bind ( GPUMaterial material,
int  oblay,
int  viewlay,
double  time,
int  mipmap 
)
void GPU_material_bind_uniforms ( GPUMaterial material,
float  obmat[][4],
float  viewmat[][4],
float  viewinv[][4],
float  obcol[4] 
)
GPUBlendMode GPU_material_blend_mode ( GPUMaterial material,
float  obcol[4] 
)
int GPU_material_bound ( GPUMaterial material)

Definition at line 340 of file gpu_material.c.

References GPUMaterial::bound.

Referenced by LOD_QuadricEditor::Update().

void GPU_material_enable_alpha ( GPUMaterial material)

Definition at line 356 of file gpu_material.c.

References GPUMaterial::alpha.

Referenced by GPU_shaderesult_set().

void GPU_material_free ( struct Material ma)
GPUMaterial* GPU_material_from_blender ( struct Scene scene,
struct Material ma 
)
void GPU_material_output_link ( GPUMaterial material,
GPUNodeLink link 
)

Definition at line 350 of file gpu_material.c.

References link(), and GPUMaterial::outlink.

Referenced by GPU_material_from_blender(), and gpu_shader_output().

void GPU_material_unbind ( GPUMaterial material)
void GPU_material_vertex_attributes ( GPUMaterial material,
struct GPUVertexAttribs attrib 
)
void GPU_materials_free ( void  )
void GPU_shadeinput_set ( GPUMaterial mat,
struct Material ma,
GPUShadeInput shi 
)
void GPU_shaderesult_set ( GPUShadeInput shi,
GPUShadeResult shr 
)
GPUNodeLink* GPU_socket ( GPUNodeStack sock)

Definition at line 1221 of file gpu_codegen.c.

References GPU_node_link_create(), link(), and GPUNodeLink::socket.

Referenced by gpu_shader_math(), and gpu_shader_vect_math().

int GPU_stack_link ( GPUMaterial mat,
const char *  name,
GPUNodeStack in,
GPUNodeStack out,
  ... 
)
GPUNodeLink* GPU_texture ( int  size,
float *  pixels 
)
GPUNodeLink* GPU_uniform ( float *  num)