1
0
mirror of https://github.com/TomHarte/CLK.git synced 2025-02-11 15:30:52 +00:00

Ensures draw is a no-op prior to pipeline setup.

This commit is contained in:
Thomas Harte 2019-03-03 15:04:14 -05:00
parent 34047fa60a
commit ccdeb3fbc8

View File

@ -679,14 +679,16 @@ void ScanTarget::update(int output_width, int output_height) {
void ScanTarget::draw(int output_width, int output_height) {
while(is_drawing_.test_and_set());
// Copy the accumulation texture to the target.
test_gl(glBindFramebuffer, GL_FRAMEBUFFER, target_framebuffer_);
test_gl(glViewport, 0, 0, (GLsizei)output_width, (GLsizei)output_height);
if(accumulation_texture_) {
// Copy the accumulation texture to the target.
test_gl(glBindFramebuffer, GL_FRAMEBUFFER, target_framebuffer_);
test_gl(glViewport, 0, 0, (GLsizei)output_width, (GLsizei)output_height);
test_gl(glClearColor, 0.0f, 0.0f, 0.0f, 0.0f);
test_gl(glClear, GL_COLOR_BUFFER_BIT);
accumulation_texture_->bind_texture();
accumulation_texture_->draw(float(output_width) / float(output_height), 4.0f / 255.0f);
test_gl(glClearColor, 0.0f, 0.0f, 0.0f, 0.0f);
test_gl(glClear, GL_COLOR_BUFFER_BIT);
accumulation_texture_->bind_texture();
accumulation_texture_->draw(float(output_width) / float(output_height), 4.0f / 255.0f);
}
is_drawing_.clear();
}