Blender  V2.93
select_private.h
Go to the documentation of this file.
1 /*
2  * This program is free software; you can redistribute it and/or
3  * modify it under the terms of the GNU General Public License
4  * as published by the Free Software Foundation; either version 2
5  * of the License, or (at your option) any later version.
6  *
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10  * GNU General Public License for more details.
11  *
12  * You should have received a copy of the GNU General Public License
13  * along with this program; if not, write to the Free Software Foundation,
14  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
15  *
16  * Copyright 2019, Blender Foundation.
17  */
18 
23 #pragma once
24 
25 #define USE_CAGE_OCCLUSION
26 
27 #include "DRW_render.h"
28 
29 /* GPUViewport.storage
30  * Is freed every time the viewport engine changes. */
31 typedef struct SELECTID_StorageList {
34 
35 typedef struct SELECTID_PassList {
41 
42 typedef struct SELECTID_Data {
43  void *engine_type;
49 
50 typedef struct SELECTID_Shaders {
51  /* Depth Pre Pass */
55 
56 typedef struct SELECTID_PrivateData {
62 
67 } SELECTID_PrivateData; /* Transient data */
68 
69 /* select_draw_utils.c */
70 void select_id_object_min_max(struct Object *obj, float r_min[3], float r_max[3]);
72 void select_id_draw_object(void *vedata,
73  View3D *v3d,
74  Object *ob,
75  short select_mode,
76  uint initial_offset,
77  uint *r_vert_offset,
78  uint *r_edge_offset,
79  uint *r_face_offset);
unsigned int uint
Definition: BLI_sys_types.h:83
char DRWViewportEmptyList
Definition: DRW_render.h:91
struct GPUShader GPUShader
Definition: GPU_shader.h:33
Scene scene
short select_id_get_object_select_mode(Scene *scene, Object *ob)
struct SELECTID_Shaders SELECTID_Shaders
void select_id_draw_object(void *vedata, View3D *v3d, Object *ob, short select_mode, uint initial_offset, uint *r_vert_offset, uint *r_edge_offset, uint *r_face_offset)
struct SELECTID_PassList SELECTID_PassList
struct SELECTID_PrivateData SELECTID_PrivateData
void select_id_object_min_max(struct Object *obj, float r_min[3], float r_max[3])
struct SELECTID_StorageList SELECTID_StorageList
struct SELECTID_Data SELECTID_Data
void * engine_type
SELECTID_StorageList * stl
DRWViewportEmptyList * fbl
DRWViewportEmptyList * txl
SELECTID_PassList * psl
struct DRWPass * depth_only_pass
struct DRWPass * select_id_vert_pass
struct DRWPass * select_id_face_pass
struct DRWPass * select_id_edge_pass
DRWShadingGroup * shgrp_face_unif
DRWShadingGroup * shgrp_edge
DRWShadingGroup * shgrp_depth_only
DRWShadingGroup * shgrp_face_flat
DRWShadingGroup * shgrp_vert
struct GPUShader * select_id_uniform
struct GPUShader * select_id_flat
struct SELECTID_PrivateData * g_data