mirror of
https://github.com/TomHarte/CLK.git
synced 2024-11-19 08:31:11 +00:00
Ensured logic for whether composite output is in use is consistent.
This commit is contained in:
parent
4d6e78e641
commit
c2d7e36c8f
@ -83,6 +83,11 @@ OpenGLOutputBuilder::~OpenGLOutputBuilder()
|
|||||||
free(rgb_shader_);
|
free(rgb_shader_);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool OpenGLOutputBuilder::get_is_television_output()
|
||||||
|
{
|
||||||
|
return output_device_ == Television || !rgb_input_shader_program_;
|
||||||
|
}
|
||||||
|
|
||||||
void OpenGLOutputBuilder::draw_frame(unsigned int output_width, unsigned int output_height, bool only_if_dirty)
|
void OpenGLOutputBuilder::draw_frame(unsigned int output_width, unsigned int output_height, bool only_if_dirty)
|
||||||
{
|
{
|
||||||
// lock down any other draw_frames
|
// lock down any other draw_frames
|
||||||
@ -171,7 +176,7 @@ void OpenGLOutputBuilder::draw_frame(unsigned int output_width, unsigned int out
|
|||||||
{nullptr}
|
{nullptr}
|
||||||
};
|
};
|
||||||
|
|
||||||
RenderStage *active_pipeline = (output_device_ == Television || !rgb_input_shader_program_) ? composite_render_stages : rgb_render_stages;
|
RenderStage *active_pipeline = get_is_television_output() ? composite_render_stages : rgb_render_stages;
|
||||||
|
|
||||||
if(array_submission.input_size || array_submission.output_size)
|
if(array_submission.input_size || array_submission.output_size)
|
||||||
{
|
{
|
||||||
@ -428,12 +433,7 @@ void OpenGLOutputBuilder::set_output_shader_width()
|
|||||||
{
|
{
|
||||||
if(output_shader_program_)
|
if(output_shader_program_)
|
||||||
{
|
{
|
||||||
float width = 1.0f;
|
const float width = get_is_television_output() ? get_composite_output_width() : 1.0f;
|
||||||
switch(output_device_)
|
|
||||||
{
|
|
||||||
case Television: width = get_composite_output_width(); break;
|
|
||||||
case Monitor: width = 1.0f; break;
|
|
||||||
}
|
|
||||||
output_shader_program_->set_input_width_scaler(width);
|
output_shader_program_->set_input_width_scaler(width);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -96,6 +96,7 @@ class OpenGLOutputBuilder {
|
|||||||
GLsync fence_;
|
GLsync fence_;
|
||||||
float get_composite_output_width() const;
|
float get_composite_output_width() const;
|
||||||
void set_output_shader_width();
|
void set_output_shader_width();
|
||||||
|
bool get_is_television_output();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
// These two are protected by output_mutex_.
|
// These two are protected by output_mutex_.
|
||||||
|
Loading…
Reference in New Issue
Block a user