Blender  V3.3
Classes | Typedefs | Functions | Variables
draw_volume.cc File Reference

Contains Volume object GPU attributes configuration. More...

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

Go to the source code of this file.

Classes

struct  VolumeUniformBufPool
 

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 (void)
 
static GPUTexture * grid_default_texture (eGPUDefaultValue default_value)
 
void DRW_volume_init (DRWData *drw_data)
 
static DRWShadingGroup * drw_volume_object_grids_init (Object *ob, ListBase *attrs, DRWShadingGroup *grp)
 
static DRWShadingGroup * drw_volume_object_mesh_init (Scene *scene, Object *ob, ListBase *attrs, DRWShadingGroup *grp)
 
static DRWShadingGroup * drw_volume_world_grids_init (ListBase *attrs, DRWShadingGroup *grp)
 
DRWShadingGroup * DRW_shgroup_volume_create_sub (Scene *scene, Object *ob, DRWShadingGroup *shgrp, GPUMaterial *gpu_material)
 

Variables

struct {
   GPUTexture *   dummy_zero
 
   GPUTexture *   dummy_one
 
   float   dummy_grid_mat [4][4]
 
} g_data = {}
 

Detailed Description

Contains Volume object GPU attributes configuration.

Definition in file draw_volume.cc.

Typedef Documentation

◆ VolumeInfosBuf

Definition at line 30 of file draw_volume.cc.

Function Documentation

◆ DRW_shgroup_volume_create_sub()

DRWShadingGroup* DRW_shgroup_volume_create_sub ( struct Scene *  scene,
struct Object *  ob,
struct DRWShadingGroup *  shgrp,
struct 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 260 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, scene, and Object::type.

Referenced by EEVEE_volumes_cache_init(), and EEVEE_volumes_cache_object_add().

◆ DRW_volume_free()

void DRW_volume_free ( void  )

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()

void DRW_volume_init ( DRWData *  drw_data)

◆ drw_volume_object_grids_init()

static DRWShadingGroup* drw_volume_object_grids_init ( Object *  ob,
ListBase *  attrs,
DRWShadingGroup *  grp 
)
static

◆ drw_volume_object_mesh_init()

static DRWShadingGroup* drw_volume_object_mesh_init ( Scene *  scene,
Object *  ob,
ListBase *  attrs,
DRWShadingGroup *  grp 
)
static

◆ DRW_volume_ubos_pool_free()

void DRW_volume_ubos_pool_free ( void *  pool)

Definition at line 64 of file draw_volume.cc.

References blender::compositor::pool.

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()

static GPUTexture* grid_default_texture ( eGPUDefaultValue  default_value)
static

Variable Documentation

◆ dummy_grid_mat

float dummy_grid_mat[4][4]

Definition at line 35 of file draw_volume.cc.

◆ dummy_one

GPUTexture* dummy_one

Definition at line 34 of file draw_volume.cc.

◆ dummy_zero

GPUTexture* dummy_zero

Definition at line 33 of file draw_volume.cc.

◆ 

struct { ... } g_data