rt(gl): draw final pass to output targets

This commit is contained in:
chyyran 2024-09-12 00:30:00 -04:00 committed by Ronny Chan
parent 666588ef0d
commit e68da7b984
3 changed files with 16 additions and 8 deletions

View file

@ -361,12 +361,25 @@ impl<T: GLInterface> FilterChainImpl<T> {
// try to hint the optimizer
assert_eq!(last.len(), 1);
if let Some(pass) = last.iter_mut().next() {
let index = passes_len - 1;
source.filter = pass.config.filter;
source.mip_filter = pass.config.filter;
source.wrap_mode = pass.config.wrap_mode;
let target = &self.output_framebuffers[index];
pass.draw(
passes_len - 1,
index,
&self.common,
pass.config.get_frame_count(frame_count),
options,
viewport,
&original,
&source,
RenderTarget::viewport_with_output(target, viewport),
);
pass.draw(
index,
&self.common,
pass.config.get_frame_count(frame_count),
options,

View file

@ -8,12 +8,7 @@ pub unsafe fn gl_compile_shader(stage: GLenum, source: &str) -> error::Result<GL
let (shader, compile_status) = unsafe {
let lens = [source.len() as GLint];
let shader = gl::CreateShader(stage);
gl::ShaderSource(
shader,
1,
&source.as_ptr().cast(),
lens.as_ptr(),
);
gl::ShaderSource(shader, 1, &source.as_ptr().cast(), lens.as_ptr());
gl::CompileShader(shader);
let mut compile_status = 0;
gl::GetShaderiv(shader, gl::COMPILE_STATUS, &mut compile_status);

View file

@ -9,7 +9,7 @@ fn triangle_gl() {
unsafe {
let mut filter = FilterChainGL::load_from_path(
"../test/shaders_slang/crt/crt-royale.slangp",
"../test/shaders_slang/test/feedback.slangp",
Some(&FilterChainOptionsGL {
glsl_version: 0,
use_dsa: false,