44 GPU_ATTACHMENT_TEXTURE(dtxl->depth),
45 GPU_ATTACHMENT_TEXTURE(wpd->accum_buffer_tx),
46 GPU_ATTACHMENT_TEXTURE(wpd->reveal_buffer_tx),
63 spec_tx = (use_spec && spec_tx) ? spec_tx : diff_tx;
78 for (
int infront = 0; infront < 2; infront++) {
146 if (do_transparent_depth_pass) {
@ STUDIOLIGHT_MATCAP_SPECULAR_GPUTEXTURE
@ STUDIOLIGHT_MATCAP_DIFFUSE_GPUTEXTURE
void BKE_studiolight_ensure_flag(StudioLight *sl, int flag)
GHash * BLI_ghash_ptr_new(const char *info) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
#define DRW_PASS_INSTANCE_CREATE(pass, original, state)
@ DRW_STATE_DEPTH_LESS_EQUAL
#define DRW_PASS_CREATE(pass, state)
#define DRW_shgroup_uniform_block(shgroup, name, ubo)
#define XRAY_FLAG_ENABLED(v3d)
void GPU_framebuffer_bind(GPUFrameBuffer *fb)
struct GPUShader GPUShader
struct GPUTexture GPUTexture
DefaultTextureList * DRW_viewport_texture_list_get(void)
void DRW_shgroup_uniform_texture(DRWShadingGroup *shgroup, const char *name, const GPUTexture *tex)
void DRW_shgroup_call_procedural_triangles(DRWShadingGroup *shgroup, Object *ob, uint tri_count)
void DRW_shgroup_uniform_int_copy(DRWShadingGroup *shgroup, const char *name, const int value)
bool DRW_pass_is_empty(DRWPass *pass)
DRWShadingGroup * DRW_shgroup_create(struct GPUShader *shader, DRWPass *pass)
DRWPass * DRW_pass_create(const char *name, DRWState state)
void DRW_shgroup_uniform_bool_copy(DRWShadingGroup *shgroup, const char *name, const bool value)
void DRW_draw_pass(DRWPass *pass)
GPUTexture * DRW_texture_pool_query_fullscreen(eGPUTextureFormat format, DrawEngineType *engine_type)
depth_tx normal_tx diffuse_light_tx specular_light_tx volume_light_tx environment_tx ambient_occlusion_tx aov_value_tx in_weight_img GPU_RGBA16F
ccl_gpu_kernel_postfix ccl_global float int int int int sh
struct GPUTexture * gputexture
StudioLightImage matcap_specular
StudioLightImage matcap_diffuse
WORKBENCH_StorageList * stl
struct GPUFrameBuffer * opaque_fb
struct GPUFrameBuffer * transp_accum_fb
struct GPUFrameBuffer * opaque_infront_fb
struct DRWPass * transp_depth_infront_ps
struct DRWPass * transp_accum_ps
struct DRWPass * outline_ps
struct DRWPass * transp_depth_ps
struct DRWPass * transp_resolve_ps
struct DRWPass * transp_accum_infront_ps
struct DRWShadingGroup * vcol_shgrp
struct DRWShadingGroup * image_tiled_shgrp
struct DRWShadingGroup * common_shgrp
struct GHash * material_hash
struct DRWShadingGroup * image_shgrp
struct GPUUniformBuf * world_ubo
struct GPUUniformBuf * material_ubo_curr
struct GPUTexture * reveal_buffer_tx
WORKBENCH_Prepass prepass[2][2][WORKBENCH_DATATYPE_MAX]
struct GPUTexture * accum_buffer_tx
StudioLight * studio_light
struct WORKBENCH_PrivateData * wpd
GPUShader * workbench_shader_transparent_resolve_get(WORKBENCH_PrivateData *wpd)
GPUShader * workbench_shader_transparent_image_get(WORKBENCH_PrivateData *wpd, eWORKBENCH_DataType data, bool tiled)
#define NORMAL_ENCODING_ENABLED()
#define STUDIOLIGHT_TYPE_MATCAP_ENABLED(wpd)
GPUShader * workbench_shader_transparent_get(WORKBENCH_PrivateData *wpd, eWORKBENCH_DataType data)
BLI_INLINE bool workbench_is_specular_highlight_enabled(WORKBENCH_PrivateData *wpd)
void workbench_transparent_engine_init(WORKBENCH_Data *data)
static void workbench_transparent_lighting_uniforms(WORKBENCH_PrivateData *wpd, DRWShadingGroup *grp)
void workbench_transparent_cache_init(WORKBENCH_Data *vedata)
void workbench_transparent_draw_depth_pass(WORKBENCH_Data *data)