93 #define DRW_VIEWPORT_LIST_SIZE(list) \
94 (sizeof(list) == sizeof(DRWViewportEmptyList) ? 0 : ((sizeof(list)) / sizeof(void *)))
97 #define DRW_VIEWPORT_DATA_SIZE(ty) \
99 DRW_VIEWPORT_LIST_SIZE(*(((ty *)NULL)->fbl)), DRW_VIEWPORT_LIST_SIZE(*(((ty *)NULL)->txl)), \
100 DRW_VIEWPORT_LIST_SIZE(*(((ty *)NULL)->psl)), \
101 DRW_VIEWPORT_LIST_SIZE(*(((ty *)NULL)->stl)), \
133 const struct rcti *rect);
158 const float *fpixels);
168 const float *fpixels);
180 #define DRW_TEXTURE_FREE_SAFE(tex) \
183 DRW_texture_free(tex); \
188 #define DRW_UBO_FREE_SAFE(ubo) \
191 GPU_uniformbuf_free(ubo); \
198 #ifndef __GPU_MATERIAL_H__
202 const char **vert_code,
203 const char **geom_code,
204 const char **frag_lib,
205 const char **defines);
209 const char *vert,
const char *geom,
const char *frag,
const char *defines,
const char *name);
226 const char **varying_names,
227 const int varying_count);
235 #define DRW_shader_create(vert, geom, frag, defines) \
236 DRW_shader_create_ex(vert, geom, frag, defines, __func__)
237 #define DRW_shader_create_with_lib(vert, geom, frag, lib, defines) \
238 DRW_shader_create_with_lib_ex(vert, geom, frag, lib, defines, __func__)
239 #define DRW_shader_create_with_shaderlib(vert, geom, frag, lib, defines) \
240 DRW_shader_create_with_shaderlib_ex(vert, geom, frag, lib, defines, __func__)
241 #define DRW_shader_create_fullscreen(frag, defines) \
242 DRW_shader_create_fullscreen_ex(frag, defines, __func__)
243 #define DRW_shader_create_fullscreen_with_shaderlib(frag, lib, defines) \
244 DRW_shader_create_fullscreen_with_shaderlib_ex(frag, lib, defines, __func__)
262 const char *frag_lib,
274 const char *frag_lib,
279 #define DRW_SHADER_FREE_SAFE(shader) \
281 if (shader != NULL) { \
282 DRW_shader_free(shader); \
291 #define DRW_SHADER_LIB_ADD(lib, lib_name) \
292 DRW_shader_library_add_file(lib, datatoc_##lib_name##_glsl, STRINGIFY(lib_name) ".glsl")
295 const char *shader_code);
298 #define DRW_SHADER_LIB_FREE_SAFE(lib) \
301 DRW_shader_library_free(lib); \
360 #define DRW_STATE_DEFAULT \
361 (DRW_STATE_WRITE_DEPTH | DRW_STATE_WRITE_COLOR | DRW_STATE_DEPTH_LESS_EQUAL)
362 #define DRW_STATE_BLEND_ENABLED \
363 (DRW_STATE_BLEND_ADD | DRW_STATE_BLEND_ADD_FULL | DRW_STATE_BLEND_ALPHA | \
364 DRW_STATE_BLEND_ALPHA_PREMUL | DRW_STATE_BLEND_BACKGROUND | DRW_STATE_BLEND_OIT | \
365 DRW_STATE_BLEND_MUL | DRW_STATE_BLEND_SUB | DRW_STATE_BLEND_CUSTOM | DRW_STATE_LOGIC_INVERT)
366 #define DRW_STATE_RASTERIZER_ENABLED \
367 (DRW_STATE_WRITE_DEPTH | DRW_STATE_WRITE_COLOR | DRW_STATE_WRITE_STENCIL | \
368 DRW_STATE_WRITE_STENCIL_SHADOW_PASS | DRW_STATE_WRITE_STENCIL_SHADOW_FAIL)
369 #define DRW_STATE_DEPTH_TEST_ENABLED \
370 (DRW_STATE_DEPTH_ALWAYS | DRW_STATE_DEPTH_LESS | DRW_STATE_DEPTH_LESS_EQUAL | \
371 DRW_STATE_DEPTH_EQUAL | DRW_STATE_DEPTH_GREATER | DRW_STATE_DEPTH_GREATER_EQUAL)
372 #define DRW_STATE_STENCIL_TEST_ENABLED \
373 (DRW_STATE_STENCIL_ALWAYS | DRW_STATE_STENCIL_EQUAL | DRW_STATE_STENCIL_NEQUAL)
374 #define DRW_STATE_WRITE_STENCIL_ENABLED \
375 (DRW_STATE_WRITE_STENCIL | DRW_STATE_WRITE_STENCIL_SHADOW_PASS | \
376 DRW_STATE_WRITE_STENCIL_SHADOW_FAIL)
391 #define DRW_shgroup_instance_format(format, ...) \
393 if (format == NULL) { \
394 DRWInstanceAttrFormat drw_format[] = __VA_ARGS__; \
395 format = DRW_shgroup_instance_format_array( \
396 drw_format, (sizeof(drw_format) / sizeof(DRWInstanceAttrFormat))); \
420 #define DRW_shgroup_call(shgroup, geom, ob) \
421 DRW_shgroup_call_ex(shgroup, ob, NULL, geom, false, NULL)
424 #define DRW_shgroup_call_obmat(shgroup, geom, obmat) \
425 DRW_shgroup_call_ex(shgroup, NULL, obmat, geom, false, NULL)
429 #define DRW_shgroup_call_with_callback(shgroup, geom, ob, user_data) \
430 DRW_shgroup_call_ex(shgroup, ob, NULL, geom, false, user_data)
433 #define DRW_shgroup_call_no_cull(shgroup, geom, ob) \
434 DRW_shgroup_call_ex(shgroup, ob, NULL, geom, true, NULL)
468 #define DRW_buffer_add_entry(buffer, ...) \
470 const void *array[] = {__VA_ARGS__}; \
471 DRW_buffer_add_entry_array(buffer, array, (sizeof(array) / sizeof(*array))); \
576 const float (*value)[4],
593 #define DRW_PASS_CREATE(pass, state) (pass = DRW_pass_create(#pass, state))
594 #define DRW_PASS_INSTANCE_CREATE(pass, original, state) \
595 (pass = DRW_pass_create_instance(#pass, (original), state))
599 const float winmat[4][4],
600 const float (*culling_viewmat)[4],
601 const float (*culling_winmat)[4],
604 const float viewmat[4][4],
605 const float winmat[4][4]);
608 const float viewmat[4][4],
609 const float winmat[4][4],
610 const float (*culling_viewmat)[4],
611 const float (*culling_winmat)[4]);
General operations, lookup, etc. for materials.
struct Depsgraph Depsgraph
void(* DrawDataFreeCb)(struct DrawData *engine_data)
void(* DrawDataInitCb)(struct DrawData *engine_data)
Object is a sort of wrapper for general info.
struct GPUTexture * DRW_texture_create_2d(int w, int h, eGPUTextureFormat format, DRWTextureFlag flags, const float *fpixels)
struct Object * DRW_object_get_dupli_parent(const struct Object *ob)
void DRW_view_frustum_corners_get(const DRWView *view, BoundBox *corners)
DRWShadingGroup * DRW_shgroup_material_create(struct GPUMaterial *material, DRWPass *pass)
const float * DRW_viewport_pixelsize_get(void)
float DRW_view_near_distance_get(const DRWView *view)
void DRW_shgroup_uniform_float_copy(DRWShadingGroup *shgroup, const char *name, const float value)
struct DRWInterface DRWInterface
bool DRW_state_is_opengl_render(void)
bool() DRWCallVisibilityFn(bool vis_in, void *user_data)
struct GPUShader * DRW_shader_create_ex(const char *vert, const char *geom, const char *frag, const char *defines, const char *name)
struct BoundSphere BoundSphere
bool DRW_state_is_playback(void)
DRWShadingGroup * DRW_shgroup_transform_feedback_create(struct GPUShader *shader, DRWPass *pass, struct GPUVertBuf *tf_target)
struct GPUShader * DRW_shader_create_with_transform_feedback(const char *vert, const char *geom, const char *defines, const eGPUShaderTFBType prim_type, const char **varying_names, const int varying_count)
void DRW_shgroup_call_ex(DRWShadingGroup *shgroup, Object *ob, float(*obmat)[4], struct GPUBatch *geom, bool bypass_culling, void *user_data)
void DRW_view_set_active(DRWView *view)
void ** DRW_duplidata_get(void *vedata)
void DRW_view_persmat_get(const DRWView *view, float mat[4][4], bool inverse)
void DRW_shgroup_state_disable(DRWShadingGroup *shgroup, DRWState state)
bool DRW_shgroup_is_empty(DRWShadingGroup *shgroup)
bool DRW_state_is_select(void)
char DRWViewportEmptyList
void DRW_texture_free(struct GPUTexture *tex)
struct GPUTexture * DRW_texture_pool_query_fullscreen(eGPUTextureFormat format, DrawEngineType *engine_type)
DrawData * DRW_drawdata_ensure(ID *id, DrawEngineType *engine_type, size_t size, DrawDataInitCb init_cb, DrawDataFreeCb free_cb)
bool DRW_state_show_text(void)
bool DRW_culling_plane_test(const DRWView *view, const float plane[4])
void DRW_view_frustum_planes_get(const DRWView *view, float planes[6][4])
void DRW_shgroup_uniform_vec4(DRWShadingGroup *shgroup, const char *name, const float *value, int arraysize)
void DRW_shgroup_uniform_ivec3_copy(DRWShadingGroup *shgroup, const char *name, const int *value)
bool DRW_state_is_navigating(void)
bool DRW_state_is_depth(void)
const DRWView * DRW_view_default_get(void)
void DRW_shgroup_call_instances(DRWShadingGroup *shgroup, Object *ob, struct GPUBatch *geom, uint count)
void DRW_shgroup_call_instance_range(DRWShadingGroup *shgroup, Object *ob, struct GPUBatch *geom, uint i_sta, uint i_ct)
void DRW_buffer_add_entry_struct(DRWCallBuffer *callbuf, const void *data)
void DRW_shgroup_stencil_set(DRWShadingGroup *shgroup, uint write_mask, uint reference, uint compare_mask)
void DRW_texture_ensure_2d(struct GPUTexture **tex, int w, int h, eGPUTextureFormat format, DRWTextureFlag flags)
struct GPUTexture * DRW_texture_create_3d(int w, int h, int d, eGPUTextureFormat format, DRWTextureFlag flags, const float *fpixels)
bool DRW_culling_sphere_test(const DRWView *view, const BoundSphere *bsphere)
bool DRW_object_is_visible_psys_in_active_context(const struct Object *object, const struct ParticleSystem *psys)
void DRW_buffer_add_entry_array(DRWCallBuffer *callbuf, const void *attr[], uint attr_len)
struct GPUShader * DRW_shader_create_with_shaderlib_ex(const char *vert, const char *geom, const char *frag, const DRWShaderLibrary *lib, const char *defines, const char *name)
void * DRW_view_layer_engine_data_get(DrawEngineType *engine_type)
void DRW_shgroup_state_enable(DRWShadingGroup *shgroup, DRWState state)
void ** DRW_view_layer_engine_data_ensure(DrawEngineType *engine_type, void(*callback)(void *storage))
void DRW_shgroup_uniform_ivec2_copy(DRWShadingGroup *shgroup, const char *name, const int *value)
void DRW_pass_link(DRWPass *first, DRWPass *second)
void DRW_render_viewport_size_set(const int size[2])
void DRW_shgroup_uniform_vec3_copy(DRWShadingGroup *shgroup, const char *name, const float *value)
void DRW_shgroup_uniform_vec3(DRWShadingGroup *shgroup, const char *name, const float *value, int arraysize)
bool DRW_view_is_persp_get(const DRWView *view)
void DRW_render_to_image(struct RenderEngine *engine, struct Depsgraph *depsgraph)
void DRW_draw_pass(DRWPass *pass)
void DRW_texture_ensure_fullscreen_2d(struct GPUTexture **tex, eGPUTextureFormat format, DRWTextureFlag flags)
DRWPass * DRW_pass_create_instance(const char *name, DRWPass *original, DRWState state)
void DRW_render_instance_buffer_finish(void)
bool DRW_state_do_color_management(void)
struct DrawEngineDataSize DrawEngineDataSize
void DRW_shgroup_uniform_ivec2(DRWShadingGroup *shgroup, const char *name, const int *value, int arraysize)
uint32_t DRW_object_resource_id_get(Object *ob)
void DRW_shgroup_call_instances_with_attrs(DRWShadingGroup *shgroup, Object *ob, struct GPUBatch *geom, struct GPUBatch *inst_attributes)
struct DupliObject * DRW_object_get_dupli(const struct Object *ob)
struct GPUTexture * DRW_texture_create_cube(int w, eGPUTextureFormat format, DRWTextureFlag flags, const float *fpixels)
void DRW_shgroup_uniform_texture_ref_ex(DRWShadingGroup *shgroup, const char *name, GPUTexture **tex, eGPUSamplerState sampler_state)
void DRW_shader_library_add_file(DRWShaderLibrary *lib, char *lib_code, const char *lib_name)
struct GPUShader * DRW_shader_create_fullscreen_ex(const char *frag, const char *defines, const char *name)
void DRW_culling_frustum_planes_get(const DRWView *view, float planes[6][4])
struct GPUTexture * DRW_texture_create_cube_array(int w, int d, eGPUTextureFormat format, DRWTextureFlag flags, const float *fpixels)
@ DRW_STATE_STENCIL_EQUAL
@ DRW_STATE_BLEND_BACKGROUND
@ DRW_STATE_STENCIL_ALWAYS
@ DRW_STATE_IN_FRONT_SELECT
@ DRW_STATE_DEPTH_GREATER_EQUAL
@ DRW_STATE_WRITE_STENCIL_SHADOW_FAIL
@ DRW_STATE_PROGRAM_POINT_SIZE
@ DRW_STATE_SHADOW_OFFSET
@ DRW_STATE_BLEND_ADD_FULL
@ DRW_STATE_BLEND_ALPHA_UNDER_PREMUL
@ DRW_STATE_DEPTH_LESS_EQUAL
@ DRW_STATE_WRITE_STENCIL_SHADOW_PASS
@ DRW_STATE_FIRST_VERTEX_CONVENTION
@ DRW_STATE_STENCIL_NEQUAL
@ DRW_STATE_BLEND_ALPHA_PREMUL
@ DRW_STATE_DEPTH_GREATER
@ DRW_STATE_WRITE_STENCIL
struct GPUTexture * DRW_texture_pool_query_2d(int w, int h, eGPUTextureFormat format, DrawEngineType *engine_type)
struct DrawEngineType DrawEngineType
int DRW_object_visibility_in_active_context(const struct Object *ob)
struct GPUMaterial * DRW_shader_find_from_world(struct World *wo, const void *engine_type, const int options, bool deferred)
void DRW_culling_frustum_corners_get(const DRWView *view, BoundBox *corners)
struct DefaultFramebufferList * DRW_viewport_framebuffer_list_get(void)
struct DRWInstanceAttrFormat DRWInstanceAttrFormat
void DRW_shgroup_uniform_ivec3(DRWShadingGroup *shgroup, const char *name, const int *value, int arraysize)
void DRW_shgroup_uniform_vec4_array_copy(DRWShadingGroup *shgroup, const char *name, const float(*value)[4], int arraysize)
struct GPUTexture * DRW_texture_create_1d(int w, eGPUTextureFormat format, DRWTextureFlag flags, const float *fpixels)
struct GPUTexture * DRW_texture_create_2d_array(int w, int h, int d, eGPUTextureFormat format, DRWTextureFlag flags, const float *fpixels)
void DRW_shgroup_uniform_texture_ref(DRWShadingGroup *shgroup, const char *name, struct GPUTexture **tex)
void DRW_view_winmat_get(const DRWView *view, float mat[4][4], bool inverse)
struct GPUShader * DRW_shader_create_with_lib_ex(const char *vert, const char *geom, const char *frag, const char *lib, const char *defines, const char *name)
void DRW_shgroup_uniform_int_copy(DRWShadingGroup *shgroup, const char *name, const int value)
struct GPUVertFormat * DRW_shgroup_instance_format_array(const DRWInstanceAttrFormat attrs[], int arraysize)
void DRW_pass_sort_shgroup_z(DRWPass *pass)
bool DRW_pass_is_empty(DRWPass *pass)
void DRW_shgroup_uniform_bool(DRWShadingGroup *shgroup, const char *name, const int *value, int arraysize)
void DRW_shgroup_uniform_mat3(DRWShadingGroup *shgroup, const char *name, const float(*value)[3])
DRWView * DRW_view_create(const float viewmat[4][4], const float winmat[4][4], const float(*culling_viewmat)[4], const float(*culling_winmat)[4], DRWCallVisibilityFn *visibility_fn)
void(* GPUMaterialEvalCallbackFn)(struct GPUMaterial *mat, int options, const char **vert_code, const char **geom_code, const char **frag_lib, const char **defines)
void DRW_state_reset(void)
void DRW_draw_callbacks_post_scene(void)
void DRW_shgroup_uniform_texture(DRWShadingGroup *shgroup, const char *name, const struct GPUTexture *tex)
void DRW_shgroup_call_procedural_triangles(DRWShadingGroup *sh, Object *ob, uint tri_count)
DRWView * DRW_view_create_sub(const DRWView *parent_view, const float viewmat[4][4], const float winmat[4][4])
void DRW_view_update(DRWView *view, const float viewmat[4][4], const float winmat[4][4], const float(*culling_viewmat)[4], const float(*culling_winmat)[4])
DRWShadingGroup * DRW_shgroup_create(struct GPUShader *shader, DRWPass *pass)
bool DRW_state_draw_support(void)
bool DRW_object_is_flat_normal(const struct Object *ob)
bool DRW_state_is_fbo(void)
void DRW_shader_library_free(DRWShaderLibrary *lib)
void DRW_shgroup_uniform_int(DRWShadingGroup *shgroup, const char *name, const int *value, int arraysize)
void DRW_shgroup_uniform_block_ref(DRWShadingGroup *shgroup, const char *name, struct GPUUniformBuf **ubo)
void ** DRW_view_layer_engine_data_ensure_ex(struct ViewLayer *view_layer, DrawEngineType *engine_type, void(*callback)(void *storage))
DRWCallBuffer * DRW_shgroup_call_buffer(DRWShadingGroup *shgroup, struct GPUVertFormat *format, GPUPrimType prim_type)
const DRWContextState * DRW_context_state_get(void)
void DRW_draw_callbacks_pre_scene(void)
bool DRW_state_draw_background(void)
void DRW_shgroup_uniform_ivec4(DRWShadingGroup *shgroup, const char *name, const int *value, int arraysize)
float DRW_view_far_distance_get(const DRWView *view)
void DRW_shgroup_call_sculpt_with_materials(DRWShadingGroup **sh, int num_sh, Object *ob)
void DRW_shgroup_add_material_resources(DRWShadingGroup *grp, struct GPUMaterial *material)
struct GPUMaterial * DRW_shader_create_from_material(struct Scene *scene, struct Material *ma, struct bNodeTree *ntree, const void *engine_type, const int options, const bool is_volume_shader, const char *vert, const char *geom, const char *frag_lib, const char *defines, bool deferred, GPUMaterialEvalCallbackFn callback)
void DRW_shgroup_uniform_texture_ex(DRWShadingGroup *shgroup, const char *name, const struct GPUTexture *tex, eGPUSamplerState sampler_state)
void DRW_cache_restart(void)
DrawData * DRW_drawdata_get(ID *id, DrawEngineType *engine_type)
void DRW_view_clip_planes_set(DRWView *view, float(*planes)[4], int plane_len)
void DRW_view_default_set(DRWView *view)
void DRW_shgroup_call_range(DRWShadingGroup *shgroup, Object *ob, struct GPUBatch *geom, uint v_sta, uint v_ct)
void DRW_state_reset_ex(DRWState state)
DRWShadingGroup * DRW_shgroup_create_sub(DRWShadingGroup *shgroup)
void DRW_shgroup_uniform_vec4_copy(DRWShadingGroup *shgroup, const char *name, const float *value)
DRWPass * DRW_pass_create(const char *name, DRWState state)
void DRW_shgroup_clear_framebuffer(DRWShadingGroup *shgroup, eGPUFrameBufferBits channels, uchar r, uchar g, uchar b, uchar a, float depth, uchar stencil)
struct GPUMaterial * DRW_shader_find_from_material(struct Material *ma, const void *engine_type, const int options, bool deferred)
void DRW_shgroup_uniform_bool_copy(DRWShadingGroup *shgroup, const char *name, const bool value)
void DRW_draw_pass_subset(DRWPass *pass, DRWShadingGroup *start_group, DRWShadingGroup *end_group)
const float * DRW_viewport_size_get(void)
bool DRW_object_use_hide_faces(const struct Object *ob)
void DRW_shgroup_uniform_mat4(DRWShadingGroup *shgroup, const char *name, const float(*value)[4])
void DRW_render_object_iter(void *vedata, struct RenderEngine *engine, struct Depsgraph *depsgraph, void(*callback)(void *vedata, struct Object *ob, struct RenderEngine *engine, struct Depsgraph *depsgraph))
void DRW_shgroup_uniform_image_ref(DRWShadingGroup *shgroup, const char *name, GPUTexture **tex)
void DRW_shader_free(struct GPUShader *shader)
void DRW_shgroup_uniform_float(DRWShadingGroup *shgroup, const char *name, const float *value, int arraysize)
const float * DRW_viewport_screenvecs_get(void)
void DRW_pass_foreach_shgroup(DRWPass *pass, void(*callback)(void *userData, DRWShadingGroup *shgroup), void *userData)
void DRW_texture_generate_mipmaps(struct GPUTexture *tex)
struct DRWContextState DRWContextState
DRWShaderLibrary * DRW_shader_library_create(void)
void DRW_shgroup_uniform_vec2_copy(DRWShadingGroup *shgroup, const char *name, const float *value)
bool DRW_state_is_image_render(void)
void DRW_state_lock(DRWState state)
struct DefaultTextureList * DRW_viewport_texture_list_get(void)
void DRW_custom_pipeline(DrawEngineType *draw_engine_type, struct Depsgraph *depsgraph, void(*callback)(void *vedata, void *user_data), void *user_data)
const float * DRW_viewport_invert_size_get(void)
bool DRW_object_is_renderable(const struct Object *ob)
bool DRW_object_is_in_edit_mode(const struct Object *ob)
void DRW_pass_sort_shgroup_reverse(DRWPass *pass)
void DRW_view_update_sub(DRWView *view, const float viewmat[4][4], const float winmat[4][4])
bool DRW_culling_min_max_test(const DRWView *view, float obmat[4][4], float min[3], float max[3])
struct GPUMaterial * DRW_shader_create_from_world(struct Scene *scene, struct World *wo, struct bNodeTree *ntree, const void *engine_type, const int options, const bool is_volume_shader, const char *vert, const char *geom, const char *frag_lib, const char *defines, bool deferred, GPUMaterialEvalCallbackFn callback)
void DRW_shgroup_uniform_vec2(DRWShadingGroup *shgroup, const char *name, const float *value, int arraysize)
bool DRW_culling_box_test(const DRWView *view, const BoundBox *bbox)
void DRW_shgroup_uniform_image(DRWShadingGroup *shgroup, const char *name, const GPUTexture *tex)
void DRW_select_load_id(uint id)
struct GPUShader * DRW_shader_create_fullscreen_with_shaderlib_ex(const char *frag, const DRWShaderLibrary *lib, const char *defines, const char *name)
void DRW_shgroup_call_procedural_points(DRWShadingGroup *sh, Object *ob, uint point_count)
char * DRW_shader_library_create_shader_string(const DRWShaderLibrary *lib, const char *shader_code)
bool DRW_state_is_scene_render(void)
void DRW_shgroup_uniform_ivec4_copy(DRWShadingGroup *shgroup, const char *name, const int *value)
void DRW_view_camtexco_set(DRWView *view, float texco[4])
void DRW_shgroup_stencil_mask(DRWShadingGroup *shgroup, uint mask)
void DRW_viewport_request_redraw(void)
void DRW_shgroup_call_sculpt(DRWShadingGroup *sh, Object *ob, bool wire, bool mask)
void DRW_view_reset(void)
void DRW_shgroup_call_procedural_lines(DRWShadingGroup *sh, Object *ob, uint line_count)
void DRW_shgroup_uniform_block(DRWShadingGroup *shgroup, const char *name, const struct GPUUniformBuf *ubo)
void DRW_render_set_time(struct RenderEngine *engine, struct Depsgraph *depsgraph, int frame, float subframe)
DRWCallBuffer * DRW_shgroup_call_buffer_instance(DRWShadingGroup *shgroup, struct GPUVertFormat *format, struct GPUBatch *geom)
void DRW_view_viewmat_get(const DRWView *view, float mat[4][4], bool inverse)
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint GLsizei GLsizei GLenum type _GL_VOID_RET _GL_VOID GLsizei GLenum GLenum const void *pixels _GL_VOID_RET _GL_VOID const void *pointer _GL_VOID_RET _GL_VOID GLdouble v _GL_VOID_RET _GL_VOID GLfloat v _GL_VOID_RET _GL_VOID GLint GLint i2 _GL_VOID_RET _GL_VOID GLint j _GL_VOID_RET _GL_VOID GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble GLdouble GLdouble zFar _GL_VOID_RET _GL_UINT GLdouble *equation _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLenum GLfloat *v _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLfloat *values _GL_VOID_RET _GL_VOID GLushort *values _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLenum GLdouble *params _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_BOOL GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLushort pattern _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble u2 _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLdouble GLdouble v2 _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLdouble GLdouble nz _GL_VOID_RET _GL_VOID GLfloat GLfloat nz _GL_VOID_RET _GL_VOID GLint GLint nz _GL_VOID_RET _GL_VOID GLshort GLshort nz _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const GLfloat *values _GL_VOID_RET _GL_VOID GLsizei const GLushort *values _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID const GLuint const GLclampf *priorities _GL_VOID_RET _GL_VOID GLdouble y _GL_VOID_RET _GL_VOID GLfloat y _GL_VOID_RET _GL_VOID GLint y _GL_VOID_RET _GL_VOID GLshort y _GL_VOID_RET _GL_VOID GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLfloat GLfloat z _GL_VOID_RET _GL_VOID GLint GLint z _GL_VOID_RET _GL_VOID GLshort GLshort z _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble w _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat w _GL_VOID_RET _GL_VOID GLint GLint GLint w _GL_VOID_RET _GL_VOID GLshort GLshort GLshort w _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble y2 _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat y2 _GL_VOID_RET _GL_VOID GLint GLint GLint y2 _GL_VOID_RET _GL_VOID GLshort GLshort GLshort y2 _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLuint *buffer _GL_VOID_RET _GL_VOID GLdouble t _GL_VOID_RET _GL_VOID GLfloat t _GL_VOID_RET _GL_VOID GLint t _GL_VOID_RET _GL_VOID GLshort t _GL_VOID_RET _GL_VOID GLdouble GLdouble r _GL_VOID_RET _GL_VOID GLfloat GLfloat r _GL_VOID_RET _GL_VOID GLint GLint r _GL_VOID_RET _GL_VOID GLshort GLshort r _GL_VOID_RET _GL_VOID GLdouble GLdouble r
struct GPUShader GPUShader
struct GPUTexture GPUTexture
struct GPUVertBuf GPUVertBuf
Read Guarded memory(de)allocation.
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
btMatrix3x3 inverse() const
Return the inverse of the matrix.
SIMD_FORCE_INLINE const btScalar & w() const
Return the w value.
CCL_NAMESPACE_BEGIN struct Options options
const Depsgraph * depsgraph
DEGForeachIDComponentCallback callback
void KERNEL_FUNCTION_FULL_NAME() shader(KernelGlobals *kg, uint4 *input, float4 *output, int type, int filter, int i, int offset, int sample)
struct SpaceLink * space_data
const struct bContext * evil_C
struct Depsgraph * depsgraph
struct ViewLayer * view_layer
struct TaskGraph * task_graph
struct Object * object_pose
struct RenderEngineType * engine_type
struct Object * object_edit
struct RegionView3D * rv3d
void(* store_metadata)(void *vedata, struct RenderResult *render_result)
struct DrawEngineType * prev
struct DrawEngineType * next
void(* cache_populate)(void *vedata, struct Object *ob)
void(* id_update)(void *vedata, struct ID *id)
void(* render_to_image)(void *vedata, struct RenderEngine *engine, struct RenderLayer *layer, const struct rcti *rect)
void(* engine_init)(void *vedata)
const DrawEngineDataSize * vedata_size
void(* draw_scene)(void *vedata)
void(* engine_free)(void)
void(* view_update)(void *vedata)
void(* cache_init)(void *vedata)
void(* cache_finish)(void *vedata)
ccl_device_inline float4 mask(const int4 &mask, const float4 &a)