Blender V2.61 - r43446
Classes | Defines | Typedefs | Functions | Variables

gpu_draw.c File Reference

#include <string.h>
#include "GL/glew.h"
#include "BLI_math.h"
#include "BLI_utildefines.h"
#include "DNA_lamp_types.h"
#include "DNA_material_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_modifier_types.h"
#include "DNA_node_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
#include "DNA_smoke_types.h"
#include "DNA_view3d_types.h"
#include "MEM_guardedalloc.h"
#include "IMB_imbuf.h"
#include "IMB_imbuf_types.h"
#include "BKE_bmfont.h"
#include "BKE_global.h"
#include "BKE_image.h"
#include "BKE_main.h"
#include "BKE_material.h"
#include "BKE_node.h"
#include "BKE_object.h"
#include "BKE_scene.h"
#include "BKE_DerivedMesh.h"
#include "BLI_threads.h"
#include "BLI_blenlib.h"
#include "GPU_buffers.h"
#include "GPU_draw.h"
#include "GPU_extensions.h"
#include "GPU_material.h"
#include "smoke_API.h"

Go to the source code of this file.

Classes

struct  GPUTextureState
struct  GPUMaterialFixed
struct  GPUMaterialState

Defines

#define FIXEDMAT   8

Typedefs

typedef struct GPUMaterialFixed GPUMaterialFixed

Functions

static void gpu_mcol (unsigned int ucol)
void GPU_render_text (MTFace *tface, int mode, const char *textstr, int textlen, unsigned int *col, float *v1, float *v2, float *v3, float *v4, int glattrib)
static int is_pow2_limit (int num)
static int smaller_pow2_limit (int num)
void GPU_set_mipmap (int mipmap)
void GPU_set_linear_mipmap (int linear)
static int gpu_get_mipmap (void)
static GLenum gpu_get_mipmap_filter (int mag)
void GPU_set_anisotropic (float value)
float GPU_get_anisotropic (void)
static void gpu_make_repbind (Image *ima)
static void gpu_clear_tpage (void)
static void gpu_set_alpha_blend (GPUBlendMode alphablend)
static void gpu_verify_alpha_blend (int alphablend)
static void gpu_verify_reflection (Image *ima)
int GPU_verify_image (Image *ima, ImageUser *iuser, int tftile, int compare, int mipmap)
static void gpu_verify_repeat (Image *ima)
int GPU_set_tpage (MTFace *tface, int mipmap, int alphablend)
void GPU_paint_set_mipmap (int mipmap)
void GPU_paint_update_image (Image *ima, int x, int y, int w, int h, int mipmap)
void GPU_update_images_framechange (void)
int GPU_update_image_time (Image *ima, double time)
void GPU_free_smoke (SmokeModifierData *smd)
void GPU_create_smoke (SmokeModifierData *smd, int highres)
static void gpu_queue_image_for_free (Image *ima)
void GPU_free_unused_buffers (void)
void GPU_free_image (Image *ima)
void GPU_free_images (void)
void GPU_free_images_anim (void)
static void gpu_material_to_fixed (GPUMaterialFixed *smat, const Material *bmat, const int gamma, const Object *ob, const int new_shading_nodes)
static Materialgpu_active_node_material (Material *ma)
void GPU_begin_object_materials (View3D *v3d, RegionView3D *rv3d, Scene *scene, Object *ob, int glsl, int *do_alpha_after)
int GPU_enable_material (int nr, void *attribs)
void GPU_set_material_alpha_blend (int alphablend)
int GPU_get_material_alpha_blend (void)
void GPU_disable_material (void)
void GPU_end_object_materials (void)
int GPU_default_lights (void)
int GPU_scene_object_lights (Scene *scene, Object *ob, int lay, float viewmat[][4], int ortho)
void GPU_state_init (void)
static void gpu_get_print (const char *name, GLenum type)
void GPU_state_print (void)

Variables

Material defmaterial
static struct GPUTextureState GTS
static ListBase image_free_queue = {NULL, NULL}
static struct GPUMaterialState GMS

Detailed Description

Definition in file gpu_draw.c.


Define Documentation

#define FIXEDMAT   8

Definition at line 906 of file gpu_draw.c.

Referenced by GPU_begin_object_materials().


Typedef Documentation


Function Documentation

static Material* gpu_active_node_material ( Material ma) [static]
void GPU_begin_object_materials ( View3D v3d,
RegionView3D rv3d,
Scene scene,
Object ob,
int  glsl,
int *  do_alpha_after 
)
static void gpu_clear_tpage ( void  ) [static]
void GPU_create_smoke ( SmokeModifierData smd,
int  highres 
)
int GPU_default_lights ( void  )
void GPU_disable_material ( void  )
int GPU_enable_material ( int  nr,
void *  attribs 
)
void GPU_end_object_materials ( void  )
void GPU_free_image ( Image ima)
void GPU_free_images ( void  )
void GPU_free_images_anim ( void  )
void GPU_free_smoke ( SmokeModifierData smd)
void GPU_free_unused_buffers ( void  )
float GPU_get_anisotropic ( void  )
int GPU_get_material_alpha_blend ( void  )

Definition at line 1185 of file gpu_draw.c.

References GMS, and GPUMaterialState::lastalphablend.

Referenced by RAS_OpenGLRasterizer::IndexPrimitivesInternal().

static int gpu_get_mipmap ( void  ) [static]

Definition at line 253 of file gpu_draw.c.

References GPUTextureState::domipmap, and GTS.

Referenced by GPU_paint_update_image(), and GPU_verify_image().

static GLenum gpu_get_mipmap_filter ( int  mag) [static]

Definition at line 258 of file gpu_draw.c.

References GPUTextureState::domipmap, GTS, and GPUTextureState::linearmipmap.

Referenced by GPU_paint_set_mipmap(), and GPU_verify_image().

static void gpu_get_print ( const char *  name,
GLenum  type 
) [static]

Definition at line 1451 of file gpu_draw.c.

Referenced by GPU_state_print().

static void gpu_make_repbind ( Image ima) [static]
static void gpu_material_to_fixed ( GPUMaterialFixed smat,
const Material bmat,
const int  gamma,
const Object ob,
const int  new_shading_nodes 
) [static]
static void gpu_mcol ( unsigned int  ucol) [static]

Definition at line 83 of file gpu_draw.c.

Referenced by GPU_render_text().

void GPU_paint_set_mipmap ( int  mipmap)
void GPU_paint_update_image ( Image ima,
int  x,
int  y,
int  w,
int  h,
int  mipmap 
)
static void gpu_queue_image_for_free ( Image ima) [static]

Definition at line 823 of file gpu_draw.c.

References BLI_addtail(), BLI_lock_thread(), BLI_unlock_thread(), LOCK_OPENGL, and MEM_dupallocN().

Referenced by GPU_free_image().

void GPU_render_text ( MTFace tface,
int  mode,
const char *  textstr,
int  textlen,
unsigned int *  col,
float *  v1,
float *  v2,
float *  v3,
float *  v4,
int  glattrib 
)
int GPU_scene_object_lights ( Scene scene,
Object ob,
int  lay,
float  viewmat[][4],
int  ortho 
)
static void gpu_set_alpha_blend ( GPUBlendMode  alphablend) [static]
void GPU_set_anisotropic ( float  value)
void GPU_set_linear_mipmap ( int  linear)

Definition at line 245 of file gpu_draw.c.

References GPU_free_images(), GTS, and GPUTextureState::linearmipmap.

Referenced by set_ge_parameters().

void GPU_set_material_alpha_blend ( int  alphablend)
void GPU_set_mipmap ( int  mipmap)

Definition at line 237 of file gpu_draw.c.

References GPUTextureState::domipmap, GPU_free_images(), and GTS.

Referenced by main(), set_ge_parameters(), and WM_init().

int GPU_set_tpage ( MTFace tface,
int  mipmap,
int  alphablend 
)
void GPU_state_init ( void  )

Definition at line 1375 of file gpu_draw.c.

References GPU_default_lights().

Referenced by RAS_OpenGLRasterizer::Init(), and wm_window_add_ghostwindow().

void GPU_state_print ( void  )

Definition at line 1465 of file gpu_draw.c.

References gpu_get_print().

int GPU_update_image_time ( Image ima,
double  time 
)
void GPU_update_images_framechange ( void  )
static void gpu_verify_alpha_blend ( int  alphablend) [static]

Definition at line 381 of file gpu_draw.c.

References GPUTextureState::alphablend, gpu_set_alpha_blend(), and GTS.

Referenced by GPU_set_tpage().

int GPU_verify_image ( Image ima,
ImageUser iuser,
int  tftile,
int  compare,
int  mipmap 
)
static void gpu_verify_reflection ( Image ima) [static]

Definition at line 391 of file gpu_draw.c.

References Image::flag, and IMA_REFLECT.

Referenced by GPU_set_tpage().

static void gpu_verify_repeat ( Image ima) [static]

Definition at line 579 of file gpu_draw.c.

References GL_CLAMP_TO_EDGE, IMA_CLAMP_U, IMA_CLAMP_V, and Image::tpageflag.

Referenced by GPU_set_tpage().

static int is_pow2_limit ( int  num) [static]

Definition at line 192 of file gpu_draw.c.

References UserDef::glreslimit, is_power_of_2_i(), and U.

Referenced by GPU_verify_image().

static int smaller_pow2_limit ( int  num) [static]

Definition at line 206 of file gpu_draw.c.

References UserDef::glreslimit, power_of_2_min_i(), and U.

Referenced by GPU_verify_image().


Variable Documentation

Definition at line 71 of file material.c.

struct GPUMaterialState GMS [static]
struct GPUTextureState GTS [static]
ListBase image_free_queue = {NULL, NULL} [static]

Definition at line 821 of file gpu_draw.c.