From 7b9ce3af98a6690eaba0909f39a3ff1272dd5155 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Foucault?= Date: Fri, 7 Oct 2022 12:13:32 +0200 Subject: GPencil: Use global viewport size instead of DRWView one This is part of the effor to simplify the View struct in order to implement multiview rendering. --- source/blender/draw/engines/gpencil/gpencil_engine.c | 1 + source/blender/draw/engines/gpencil/shaders/gpencil_vert.glsl | 2 +- source/blender/draw/engines/gpencil/shaders/infos/gpencil_info.hh | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/draw/engines/gpencil/gpencil_engine.c b/source/blender/draw/engines/gpencil/gpencil_engine.c index 42c396a0d43..b24e4c605e4 100644 --- a/source/blender/draw/engines/gpencil/gpencil_engine.c +++ b/source/blender/draw/engines/gpencil/gpencil_engine.c @@ -459,6 +459,7 @@ static void gpencil_layer_cache_populate(bGPDlayer *gpl, DRW_shgroup_uniform_texture(grp, "gpStrokeTexture", iter->tex_stroke); DRW_shgroup_uniform_int_copy(grp, "gpMaterialOffset", iter->mat_ofs); DRW_shgroup_uniform_float_copy(grp, "gpStrokeIndexOffset", iter->stroke_index_offset); + DRW_shgroup_uniform_vec2_copy(grp, "viewportSize", DRW_viewport_size_get()); } static void gpencil_stroke_cache_populate(bGPDlayer *gpl, diff --git a/source/blender/draw/engines/gpencil/shaders/gpencil_vert.glsl b/source/blender/draw/engines/gpencil/shaders/gpencil_vert.glsl index b0ee059cb9d..8ed03b23809 100644 --- a/source/blender/draw/engines/gpencil/shaders/gpencil_vert.glsl +++ b/source/blender/draw/engines/gpencil/shaders/gpencil_vert.glsl @@ -47,7 +47,7 @@ void main() col1, col2, fcol1, - vec4(drw_view.viewport_size, drw_view.viewport_size_inverse), + vec4(viewportSize, 1.0 / viewportSize), gp_flag, gp_mat._alignment_rot, gp_interp.pos, diff --git a/source/blender/draw/engines/gpencil/shaders/infos/gpencil_info.hh b/source/blender/draw/engines/gpencil/shaders/infos/gpencil_info.hh index 9936a7bdf99..edd51e71242 100644 --- a/source/blender/draw/engines/gpencil/shaders/infos/gpencil_info.hh +++ b/source/blender/draw/engines/gpencil/shaders/infos/gpencil_info.hh @@ -28,6 +28,7 @@ GPU_SHADER_CREATE_INFO(gpencil_geometry) .sampler(3, ImageType::FLOAT_2D, "gpMaskTexture") .uniform_buf(4, "gpMaterial", "materials[GPENCIL_MATERIAL_BUFFER_LEN]", Frequency::BATCH) .uniform_buf(3, "gpLight", "lights[GPENCIL_LIGHT_BUFFER_LEN]", Frequency::BATCH) + .push_constant(Type::VEC2, "viewportSize") /* Per Object */ .push_constant(Type::VEC3, "gpNormal") .push_constant(Type::BOOL, "gpStrokeOrder3d") -- cgit v1.2.3