mirror of
https://github.com/korenkonder/ReDIVA.git
synced 2026-10-11 16:48:24 +03:00
Moved begin and end of Query and writes to Buffer to GL State
This commit is contained in:
+12
-12
@@ -1204,7 +1204,7 @@ namespace rndr {
|
||||
|
||||
quad_shader_data quad_data = {};
|
||||
quad_data.g_texcoord_modifier = { 0.5f, 0.5f, 0.5f, 0.5f };
|
||||
rctx->quad_ubo.WriteMemory(rend_data_ctx.state, quad_data);
|
||||
rend_data_ctx.state.write_uniform_buffer(rctx->quad_ubo, quad_data);
|
||||
|
||||
contour_params_shader_data contour_params_data = {};
|
||||
const double_t max_distance = cam.get_max_distance();
|
||||
@@ -1214,7 +1214,7 @@ namespace rndr {
|
||||
(float_t)(-(max_distance * min_distance) * (1.0 / (max_distance - min_distance))),
|
||||
(float_t)min_distance, (float_t)max_distance
|
||||
};
|
||||
rctx->contour_params_ubo.WriteMemory(rend_data_ctx.state, contour_params_data);
|
||||
rend_data_ctx.state.write_uniform_buffer(rctx->contour_params_ubo, contour_params_data);
|
||||
|
||||
shaders_ft.set(rend_data_ctx.state, rend_data_ctx.shader_flags, SHADER_FT_CONTOUR_NPR);
|
||||
rend_data_ctx.state.active_bind_texture_2d(14, rt->get_depth_texture_glid());
|
||||
@@ -1271,13 +1271,13 @@ void image_filter_scale(render_data_context& rend_data_ctx,
|
||||
image_filter_scene_shader_data filter_scene = {};
|
||||
filter_scene.g_transform = { 1.0f, 1.0f, 0.0f, 0.0f };
|
||||
filter_scene.g_texcoord = { 1.0f, 1.0f, 0.0f, 0.0f };
|
||||
rctx->image_filter_scene_ubo.WriteMemory(rend_data_ctx.state, filter_scene);
|
||||
rend_data_ctx.state.write_uniform_buffer(rctx->image_filter_scene_ubo, filter_scene);
|
||||
|
||||
image_filter_batch_shader_data image_filter_batch = {};
|
||||
image_filter_batch.g_color_scale = scale;
|
||||
image_filter_batch.g_color_offset = 0.0f;
|
||||
image_filter_batch.g_texture_lod = 0.0f;
|
||||
rctx->image_filter_batch_ubo.WriteMemory(rend_data_ctx.state, image_filter_batch);
|
||||
rend_data_ctx.state.write_uniform_buffer(rctx->image_filter_batch_ubo, image_filter_batch);
|
||||
|
||||
rend_data_ctx.shader_flags.arr[U_IMAGE_FILTER] = 5;
|
||||
shaders_ft.set(rend_data_ctx.state, rend_data_ctx.shader_flags, SHADER_FT_IMGFILT);
|
||||
@@ -1421,7 +1421,7 @@ static void apply_esm_filter(render_data_context& rend_data_ctx,
|
||||
esm_filter_scene_shader_data filter_scene = {};
|
||||
filter_scene.g_transform = 0.0f;
|
||||
filter_scene.g_texcoord = { 1.0f, 1.0f, 0.0f, 0.0f };
|
||||
rctx->esm_filter_scene_ubo.WriteMemory(rend_data_ctx.state, filter_scene);
|
||||
rend_data_ctx.state.write_uniform_buffer(rctx->esm_filter_scene_ubo, filter_scene);
|
||||
|
||||
esm_filter_batch_shader_data esm_filter_batch = {};
|
||||
double_t v6 = 1.0 / (sqrt(M_PI * 2.0) * sigma);
|
||||
@@ -1438,7 +1438,7 @@ static void apply_esm_filter(render_data_context& rend_data_ctx,
|
||||
|
||||
buf->begin_render(rend_data_ctx.state);
|
||||
esm_filter_batch.g_params = { 1.0f / (float_t)dst_tex->width, 0.0f, far_texel_offset, far_texel_offset };
|
||||
rctx->esm_filter_batch_ubo.WriteMemory(rend_data_ctx.state, esm_filter_batch);
|
||||
rend_data_ctx.state.write_uniform_buffer(rctx->esm_filter_batch_ubo, esm_filter_batch);
|
||||
|
||||
rend_data_ctx.state.active_bind_texture_2d(0, src_tex->glid);
|
||||
rend_data_ctx.state.bind_sampler(0, rctx->render_samplers[0]);
|
||||
@@ -1447,7 +1447,7 @@ static void apply_esm_filter(render_data_context& rend_data_ctx,
|
||||
|
||||
dst->begin_render(rend_data_ctx.state);
|
||||
esm_filter_batch.g_params = { 0.0f, 1.0f / (float_t)dst_tex->height, far_texel_offset, far_texel_offset };
|
||||
rctx->esm_filter_batch_ubo.WriteMemory(rend_data_ctx.state, esm_filter_batch);
|
||||
rend_data_ctx.state.write_uniform_buffer(rctx->esm_filter_batch_ubo, esm_filter_batch);
|
||||
|
||||
rend_data_ctx.state.active_bind_texture_2d(0, buf_tex->glid);
|
||||
rend_data_ctx.state.bind_sampler(0, rctx->render_samplers[0]);
|
||||
@@ -1474,7 +1474,7 @@ static void apply_esm_min_filter(render_data_context& rend_data_ctx,
|
||||
esm_filter_scene_shader_data filter_scene = {};
|
||||
filter_scene.g_transform = 0.0f;
|
||||
filter_scene.g_texcoord = { 1.0f, 1.0f, 0.0f, 0.0f };
|
||||
rctx->esm_filter_scene_ubo.WriteMemory(rend_data_ctx.state, filter_scene);
|
||||
rend_data_ctx.state.write_uniform_buffer(rctx->esm_filter_scene_ubo, filter_scene);
|
||||
|
||||
esm_filter_batch_shader_data esm_filter_batch = {};
|
||||
esm_filter_batch.g_gauss[0] = 0.0f;
|
||||
@@ -1488,7 +1488,7 @@ static void apply_esm_min_filter(render_data_context& rend_data_ctx,
|
||||
buf->begin_render(rend_data_ctx.state);
|
||||
esm_filter_batch.g_params = { 1.0f / (float_t)src_tex->width,
|
||||
1.0f / (float_t)src_tex->height, 0.0f, 0.0f };
|
||||
rctx->esm_filter_batch_ubo.WriteMemory(rend_data_ctx.state, esm_filter_batch);
|
||||
rend_data_ctx.state.write_uniform_buffer(rctx->esm_filter_batch_ubo, esm_filter_batch);
|
||||
|
||||
rend_data_ctx.shader_flags.arr[U_ESM_FILTER] = 0;
|
||||
shaders_ft.set(rend_data_ctx.state, rend_data_ctx.shader_flags, SHADER_FT_ESMFILT);
|
||||
@@ -1502,7 +1502,7 @@ static void apply_esm_min_filter(render_data_context& rend_data_ctx,
|
||||
dst->begin_render(rend_data_ctx.state);
|
||||
esm_filter_batch.g_params = { 0.75f / (float_t)buf_tex->width,
|
||||
0.75f / (float_t)buf_tex->height, 0.0f, 0.0f };
|
||||
rctx->esm_filter_batch_ubo.WriteMemory(rend_data_ctx.state, esm_filter_batch);
|
||||
rend_data_ctx.state.write_uniform_buffer(rctx->esm_filter_batch_ubo, esm_filter_batch);
|
||||
|
||||
rend_data_ctx.shader_flags.arr[U_ESM_FILTER] = 1;
|
||||
shaders_ft.set(rend_data_ctx.state, rend_data_ctx.shader_flags, SHADER_FT_ESMFILT);
|
||||
@@ -1992,7 +1992,7 @@ static void apply_blur_filter_sub(render_data_context& rend_data_ctx, RenderText
|
||||
float_t h = res_scale.y / (float_t)src->get_height();
|
||||
filter_scene.g_transform = { w, h, 0.0f, 0.0f };
|
||||
filter_scene.g_texcoord = { 1.0f, 1.0f, 0.0f, 0.0f };
|
||||
rctx->image_filter_scene_ubo.WriteMemory(rend_data_ctx.state, filter_scene);
|
||||
rend_data_ctx.state.write_uniform_buffer(rctx->image_filter_scene_ubo, filter_scene);
|
||||
|
||||
image_filter_batch_shader_data image_filter_batch = {};
|
||||
if (filter == BLUR_FILTER_32)
|
||||
@@ -2001,7 +2001,7 @@ static void apply_blur_filter_sub(render_data_context& rend_data_ctx, RenderText
|
||||
image_filter_batch.g_color_scale = scale * (float_t)(1.0 / 4.0);
|
||||
image_filter_batch.g_color_offset = offset;
|
||||
image_filter_batch.g_texture_lod = 0.0f;
|
||||
rctx->image_filter_batch_ubo.WriteMemory(rend_data_ctx.state, image_filter_batch);
|
||||
rend_data_ctx.state.write_uniform_buffer(rctx->image_filter_batch_ubo, image_filter_batch);
|
||||
|
||||
rend_data_ctx.shader_flags.arr[U_IMAGE_FILTER] = filter == BLUR_FILTER_32 ? 1 : 0;
|
||||
rend_data_ctx.state.bind_vertex_array(rctx->box_vao);
|
||||
|
||||
Reference in New Issue
Block a user