41 0.001f, 0.01f, 0.1f, 1.0f, 10.0f, 100.0f, 1000.0f, 10000.0f};
45 grid->line_size =
max_ff(0.0f,
U.pixelsize - 1.0f) * 0.5f;
56 const bool background_enabled = is_uv_edit ? (!pd->
hide_overlays &&
60 if (background_enabled) {
68 if (background_enabled && draw_grid) {
77 grid->distance = 1.0f;
105 float viewinv[4][4], wininv[4][4];
106 float viewmat[4][4], winmat[4][4];
144 float zvec[3], campos[3];
156 zneg_flag = zpos_flag;
160 if (((winmat[3][3] == 0.0f) && (campos[2] > 0.0f)) ||
161 ((winmat[3][3] != 0.0f) && (zvec[2] < 0.0f)))
182 dist = ((
Camera *)(camera_object->
data))->clip_end;
191 if (winmat[3][3] == 0.0f) {
199 grid->distance = dist / 2.0f;
208 float viewinvscale =
len_v3(viewinv[0]);
209 grid->distance *= viewinvscale;
215 grid->steps[i][0] = grid_steps[i];
216 grid->steps[i][1] = (grid_steps_y[i] != 0.0f) ? grid_steps_y[i] : grid_steps[i];
238 GPUUniformBuf *&grid_ubo =
reinterpret_cast<Instance *
>(vedata->
instance)->grid_ubo;
239 if (grid_ubo ==
nullptr) {
258 mat[0][0] = grid->size[0];
259 mat[1][1] = grid->size[1];
260 mat[2][2] = grid->size[2];
298 float theme_color[4];
308 for (
int x = 0; x < grid->size[0]; x++) {
310 for (
int y = 0; y < grid->size[1]; y++) {
MINLINE float max_ff(float a, float b)
MINLINE float min_ff(float a, float b)
MINLINE void srgb_to_linearrgb_v4(float linear[4], const float srgb[4])
void unit_m4(float m[4][4])
MINLINE void copy_v3_v3(float r[3], const float a[3])
MINLINE void negate_v3_v3(float r[3], const float a[3])
void interp_v4_v4v4(float r[4], const float a[4], const float b[4], float t)
MINLINE void copy_v3_fl3(float v[3], float x, float y, float z)
MINLINE void copy_v3_fl(float r[3], float f)
MINLINE float len_v3(const float a[3]) ATTR_WARN_UNUSED_RESULT
Object * DEG_get_evaluated_object(const Depsgraph *depsgraph, Object *object)
@ SI_OVERLAY_SHOW_GRID_BACKGROUND
#define SI_GRID_STEPS_LEN
#define DRW_PASS_CREATE(pass, state)
#define DRW_shgroup_uniform_block(shgroup, name, ubo)
#define DRW_shgroup_call_obmat(shgroup, geom, obmat)
#define DRW_shgroup_call(shgroup, geom, ob)
float ED_space_image_zoom_level(const View2D *v2d, int grid_dimension)
bool ED_space_image_has_buffer(SpaceImage *sima)
void ED_space_image_grid_steps(SpaceImage *sima, float grid_steps_x[SI_GRID_STEPS_LEN], float grid_steps_y[SI_GRID_STEPS_LEN], int grid_dimension)
void ED_view3d_grid_steps(const Scene *scene, const View3D *v3d, const RegionView3D *rv3d, float r_grid_steps[8])
void UI_GetThemeColorShade4fv(int colorid, int offset, float col[4])
struct GPUShader GPUShader
A running instance of the engine.
blender::gpu::Batch * DRW_cache_quad_get()
blender::gpu::Batch * DRW_cache_quad_wires_get()
blender::gpu::Batch * DRW_cache_grid_get()
DefaultTextureList * DRW_viewport_texture_list_get()
const DRWContextState * DRW_context_state_get()
DRWShadingGroup * DRW_shgroup_create(GPUShader *shader, DRWPass *pass)
void DRW_shgroup_uniform_vec3_copy(DRWShadingGroup *shgroup, const char *name, const float *value)
DRWShadingGroup * DRW_shgroup_create_sub(DRWShadingGroup *shgroup)
void DRW_view_winmat_get(const DRWView *view, float mat[4][4], bool inverse)
void DRW_shgroup_uniform_int_copy(DRWShadingGroup *shgroup, const char *name, const int value)
void DRW_shgroup_uniform_vec4_copy(DRWShadingGroup *shgroup, const char *name, const float *value)
void DRW_shgroup_uniform_texture_ref(DRWShadingGroup *shgroup, const char *name, GPUTexture **tex)
void DRW_view_viewmat_get(const DRWView *view, float mat[4][4], bool inverse)
void DRW_draw_pass(DRWPass *pass)
draw_view in_light_buf[] float
BLI_STATIC_ASSERT(MBC_BATCH_LEN< 32, "Number of batches exceeded the limit of bit fields")
void OVERLAY_grid_draw(OVERLAY_Data *vedata)
void OVERLAY_grid_cache_init(OVERLAY_Data *vedata)
void OVERLAY_grid_init(OVERLAY_Data *vedata)
GPUShader * OVERLAY_shader_grid_background()
GPUShader * OVERLAY_shader_grid()
GPUShader * OVERLAY_shader_grid_image()
#define OVERLAY_GRID_STEPS_LEN
GPUUniformBuf * block_ubo
OVERLAY_StorageList * stl
OVERLAY_GridBits grid_flag
OVERLAY_GridBits zneg_flag
struct OVERLAY_PrivateData::@226 grid
OVERLAY_GridData grid_data
OVERLAY_GridBits zpos_flag
SpaceImageOverlay overlay