Blender V4.3
draw_volume.cc File Reference

Contains Volume object GPU attributes configuration. More...

#include "DRW_gpu_wrapper.hh"
#include "DRW_render.hh"
#include "DNA_fluid_types.h"
#include "DNA_volume_types.h"
#include "BKE_fluid.h"
#include "BKE_global.hh"
#include "BKE_mesh.hh"
#include "BKE_modifier.hh"
#include "BKE_volume.hh"
#include "BKE_volume_render.hh"
#include "GPU_material.hh"
#include "draw_common_c.hh"
#include "draw_manager_c.hh"
#include "draw_common.hh"

Go to the source code of this file.

Classes

struct  VolumeUniformBufPool
 

Namespaces

namespace  blender
 
namespace  blender::draw
 

Typedefs

using VolumeInfosBuf = blender::draw::UniformBuffer<VolumeInfos>
 

Functions

void DRW_volume_ubos_pool_free (void *pool)
 
static void drw_volume_globals_init ()
 
void DRW_volume_free ()
 
static GPUTexture * grid_default_texture (eGPUDefaultValue default_value)
 
void DRW_volume_init (DRWData *drw_data)
 
static DRWShadingGroupdrw_volume_object_grids_init (Object *ob, ListBase *attrs, DRWShadingGroup *grp)
 
static DRWShadingGroupdrw_volume_object_mesh_init (Scene *scene, Object *ob, ListBase *attrs, DRWShadingGroup *grp)
 
static DRWShadingGroupdrw_volume_world_grids_init (ListBase *attrs, DRWShadingGroup *grp)
 
DRWShadingGroupDRW_shgroup_volume_create_sub (Scene *scene, Object *ob, DRWShadingGroup *shgrp, GPUMaterial *gpu_material)
 
template<typename PassType >
PassTypeblender::draw::volume_world_grids_init (PassType &ps, ListBaseWrapper< GPUMaterialAttribute > &attrs)
 
template<typename PassType >
PassTypeblender::draw::volume_object_grids_init (PassType &ps, Object *ob, ListBaseWrapper< GPUMaterialAttribute > &attrs)
 
template<typename PassType >
PassTypeblender::draw::drw_volume_object_mesh_init (PassType &ps, Scene *scene, Object *ob, ListBaseWrapper< GPUMaterialAttribute > &attrs)
 
template<typename PassType >
PassTypeblender::draw::volume_sub_pass_implementation (PassType &ps, Scene *scene, Object *ob, GPUMaterial *gpu_material)
 
PassMain::Subblender::draw::volume_sub_pass (PassMain::Sub &ps, Scene *scene, Object *ob, GPUMaterial *gpu_material)
 

Variables

struct { 
 
   GPUTexture *   dummy_zero 
 
   GPUTexture *   dummy_one 
 
g_data = {} 
 

Detailed Description

Contains Volume object GPU attributes configuration.

Definition in file draw_volume.cc.

Typedef Documentation

◆ VolumeInfosBuf

Function Documentation

◆ DRW_shgroup_volume_create_sub()

DRWShadingGroup * DRW_shgroup_volume_create_sub ( Scene * scene,
Object * ob,
DRWShadingGroup * shgrp,
GPUMaterial * gpu_material )

Add attributes bindings of volume grids to an existing shading group. No draw call is added so the caller can decide how to use the data.

Returns
nullptr if there is nothing to draw.

Definition at line 261 of file draw_volume.cc.

References drw_volume_object_grids_init(), drw_volume_object_mesh_init(), drw_volume_world_grids_init(), GPU_material_attributes(), OB_VOLUME, and Object::type.

◆ DRW_volume_free()

void DRW_volume_free ( )

Definition at line 83 of file draw_volume.cc.

References g_data, and GPU_TEXTURE_FREE_SAFE.

Referenced by DRW_engines_free().

◆ drw_volume_globals_init()

static void drw_volume_globals_init ( )
static

◆ DRW_volume_init()

◆ drw_volume_object_grids_init()

◆ drw_volume_object_mesh_init()

◆ DRW_volume_ubos_pool_free()

void DRW_volume_ubos_pool_free ( void * pool)

Definition at line 66 of file draw_volume.cc.

Referenced by DRW_viewport_data_free().

◆ drw_volume_world_grids_init()

static DRWShadingGroup * drw_volume_world_grids_init ( ListBase * attrs,
DRWShadingGroup * grp )
static

◆ grid_default_texture()

Variable Documentation

◆ dummy_one

GPUTexture* dummy_one

Definition at line 37 of file draw_volume.cc.

◆ dummy_zero

GPUTexture* dummy_zero

Definition at line 36 of file draw_volume.cc.

◆ [struct]