diff --git a/Components/6560/6560.cpp b/Components/6560/6560.cpp index 78fc24e97..d9a4dc183 100644 --- a/Components/6560/6560.cpp +++ b/Components/6560/6560.cpp @@ -163,6 +163,7 @@ void MOS6560::output_border(unsigned int number_of_cycles) uint8_t *colour_pointer = _crt->allocate_write_area(1); if(colour_pointer) *colour_pointer = _registers.borderColour; _crt->output_level(number_of_cycles); +// _crt->output_blank(number_of_cycles); } uint16_t MOS6560::get_address() diff --git a/Outputs/CRT/Internals/CRTConstants.hpp b/Outputs/CRT/Internals/CRTConstants.hpp index d0e3b1c78..0951d65f3 100644 --- a/Outputs/CRT/Internals/CRTConstants.hpp +++ b/Outputs/CRT/Internals/CRTConstants.hpp @@ -41,7 +41,10 @@ const GLsizei IntermediateBufferHeight = 1024; // Some internal buffer sizes const GLsizeiptr OutputVertexBufferDataSize = OutputVertexSize * IntermediateBufferHeight; // i.e. the maximum number of scans of output that can be created between draws -const GLsizeiptr SourceVertexBufferDataSize = SourceVertexSize * IntermediateBufferHeight * 2; // (the maximum number of scans) * conservative, high guess at a maximumum number of events likely to occur within a scan +const GLsizeiptr SourceVertexBufferDataSize = SourceVertexSize * IntermediateBufferHeight * 10; // (the maximum number of scans) * conservative, high guess at a maximumum number of events likely to occur within a scan + +// TODO: when SourceVertexBufferDataSize is exhausted, the CRT keeps filling OutputVertexBufferDataSize regardless, +// leading to empty scanlines that nevertheless clear old contents. } } diff --git a/Outputs/CRT/Internals/CRTOpenGL.cpp b/Outputs/CRT/Internals/CRTOpenGL.cpp index 66a5f9a96..75a27fd1d 100644 --- a/Outputs/CRT/Internals/CRTOpenGL.cpp +++ b/Outputs/CRT/Internals/CRTOpenGL.cpp @@ -334,8 +334,10 @@ void OpenGLOutputBuilder::draw_frame(unsigned int output_width, unsigned int out glActiveTexture(pixel_accumulation_texture_unit); framebuffer->bind_texture(); -// compositeTexture->bind_texture(); framebuffer->draw((float)output_width / (float)output_height); +// glViewport(0, 0, (GLsizei)output_width / 4, (GLsizei)output_height / 4); +// compositeTexture->bind_texture(); +// compositeTexture->draw((float)output_width / (float)output_height); _fence = glFenceSync(GL_SYNC_GPU_COMMANDS_COMPLETE, 0); _draw_mutex->unlock();