@@ -77,60 +77,60 @@ int PostProcessMan::Initialize() {
77
77
}
78
78
79
79
void PostProcessMan::InitializeGLPointers () {
80
- glGenTextures (1 , &m_BackBuffer8);
81
- glGenTextures (1 , &m_BackBuffer32);
82
- glGenTextures (1 , &m_Palette8Texture);
83
- glGenFramebuffers (1 , &m_BlitFramebuffer);
84
- glGenFramebuffers (1 , &m_PostProcessFramebuffer);
85
- glGenTextures (1 , &m_PostProcessDepthBuffer);
86
- glGenVertexArrays (1 , &m_VertexArray);
87
- glGenBuffers (1 , &m_VertexBuffer);
88
-
89
- glBindVertexArray (m_VertexArray);
90
- glBindBuffer (GL_ARRAY_BUFFER, m_VertexBuffer);
91
- glBufferData (GL_ARRAY_BUFFER, sizeof (c_Quad), c_Quad.data (), GL_STATIC_DRAW);
92
- glVertexAttribPointer (0 , 2 , GL_FLOAT, GL_FALSE, 4 * sizeof (float ), nullptr );
93
- glEnableVertexAttribArray (0 );
94
- glVertexAttribPointer (1 , 2 , GL_FLOAT, GL_FALSE, 4 * sizeof (float ), (void *)(2 * sizeof (float )));
95
- glEnableVertexAttribArray (1 );
96
- glBindVertexArray (0 );
80
+ GL_CHECK ( glGenTextures (1 , &m_BackBuffer8) );
81
+ GL_CHECK ( glGenTextures (1 , &m_BackBuffer32) );
82
+ GL_CHECK ( glGenTextures (1 , &m_Palette8Texture) );
83
+ GL_CHECK ( glGenFramebuffers (1 , &m_BlitFramebuffer) );
84
+ GL_CHECK ( glGenFramebuffers (1 , &m_PostProcessFramebuffer) );
85
+ GL_CHECK ( glGenTextures (1 , &m_PostProcessDepthBuffer) );
86
+ GL_CHECK ( glGenVertexArrays (1 , &m_VertexArray) );
87
+ GL_CHECK ( glGenBuffers (1 , &m_VertexBuffer) );
88
+
89
+ GL_CHECK ( glBindVertexArray (m_VertexArray) );
90
+ GL_CHECK ( glBindBuffer (GL_ARRAY_BUFFER, m_VertexBuffer) );
91
+ GL_CHECK ( glBufferData (GL_ARRAY_BUFFER, sizeof (c_Quad), c_Quad.data (), GL_STATIC_DRAW) );
92
+ GL_CHECK ( glVertexAttribPointer (0 , 2 , GL_FLOAT, GL_FALSE, 4 * sizeof (float ), nullptr ) );
93
+ GL_CHECK ( glEnableVertexAttribArray (0 ) );
94
+ GL_CHECK ( glVertexAttribPointer (1 , 2 , GL_FLOAT, GL_FALSE, 4 * sizeof (float ), (void *)(2 * sizeof (float ) )));
95
+ GL_CHECK ( glEnableVertexAttribArray (1 ) );
96
+ GL_CHECK ( glBindVertexArray (0 ) );
97
97
}
98
98
99
99
void PostProcessMan::DestroyGLPointers () {
100
- glDeleteTextures (1 , &m_BackBuffer8);
101
- glDeleteTextures (1 , &m_BackBuffer32);
102
- glDeleteTextures (1 , &m_Palette8Texture);
103
- glDeleteFramebuffers (1 , &m_BlitFramebuffer);
100
+ GL_CHECK ( glDeleteTextures (1 , &m_BackBuffer8) );
101
+ GL_CHECK ( glDeleteTextures (1 , &m_BackBuffer32) );
102
+ GL_CHECK ( glDeleteTextures (1 , &m_Palette8Texture) );
103
+ GL_CHECK ( glDeleteFramebuffers (1 , &m_BlitFramebuffer) );
104
104
for (auto & bitmapTexture: m_BitmapTextures) {
105
- glDeleteTextures (1 , &bitmapTexture->m_Texture );
105
+ GL_CHECK ( glDeleteTextures (1 , &bitmapTexture->m_Texture ) );
106
106
}
107
- glDeleteFramebuffers (1 , &m_PostProcessFramebuffer);
108
- glDeleteTextures (1 , &m_PostProcessDepthBuffer);
109
- glDeleteVertexArrays (1 , &m_VertexArray);
110
- glDeleteBuffers (1 , &m_VertexBuffer);
107
+ GL_CHECK ( glDeleteFramebuffers (1 , &m_PostProcessFramebuffer) );
108
+ GL_CHECK ( glDeleteTextures (1 , &m_PostProcessDepthBuffer) );
109
+ GL_CHECK ( glDeleteVertexArrays (1 , &m_VertexArray) );
110
+ GL_CHECK ( glDeleteBuffers (1 , &m_VertexBuffer) );
111
111
}
112
112
113
113
void PostProcessMan::CreateGLBackBuffers () {
114
- glBindTexture (GL_TEXTURE_2D, m_BackBuffer8);
115
- glTexImage2D (GL_TEXTURE_2D, 0 , GL_RGBA, g_FrameMan.GetBackBuffer8 ()->w , g_FrameMan.GetBackBuffer8 ()->h , 0 , GL_RED, GL_UNSIGNED_BYTE, 0 );
116
- glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
117
- glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
118
- glBindTexture (GL_TEXTURE_2D, m_BackBuffer32);
119
- glTexImage2D (GL_TEXTURE_2D, 0 , GL_RGBA, g_FrameMan.GetBackBuffer8 ()->w , g_FrameMan.GetBackBuffer8 ()->h , 0 , GL_RED, GL_UNSIGNED_BYTE, 0 );
120
- glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
121
- glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
122
- glBindTexture (GL_TEXTURE_2D, 0 );
123
- glBindTexture (GL_TEXTURE_1D, m_Palette8Texture);
124
- glTexImage1D (GL_TEXTURE_1D, 0 , GL_RGBA, c_PaletteEntriesNumber, 0 , GL_RGBA, GL_UNSIGNED_INT, 0 );
125
- glTexParameteri (GL_TEXTURE_1D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
126
- glTexParameteri (GL_TEXTURE_1D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
114
+ GL_CHECK ( glBindTexture (GL_TEXTURE_2D, m_BackBuffer8) );
115
+ GL_CHECK ( glTexImage2D (GL_TEXTURE_2D, 0 , GL_RGBA, g_FrameMan.GetBackBuffer8 ()->w , g_FrameMan.GetBackBuffer8 ()->h , 0 , GL_RED, GL_UNSIGNED_BYTE, 0 ) );
116
+ GL_CHECK ( glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR) );
117
+ GL_CHECK ( glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR) );
118
+ GL_CHECK ( glBindTexture (GL_TEXTURE_2D, m_BackBuffer32) );
119
+ GL_CHECK ( glTexImage2D (GL_TEXTURE_2D, 0 , GL_RGBA, g_FrameMan.GetBackBuffer8 ()->w , g_FrameMan.GetBackBuffer8 ()->h , 0 , GL_RED, GL_UNSIGNED_BYTE, 0 ) );
120
+ GL_CHECK ( glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR) );
121
+ GL_CHECK ( glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR) );
122
+ GL_CHECK ( glBindTexture (GL_TEXTURE_2D, 0 ) );
123
+ GL_CHECK ( glBindTexture (GL_TEXTURE_1D, m_Palette8Texture) );
124
+ GL_CHECK ( glTexImage1D (GL_TEXTURE_1D, 0 , GL_RGBA, c_PaletteEntriesNumber, 0 , GL_RGBA, GL_UNSIGNED_INT, 0 ) );
125
+ GL_CHECK ( glTexParameteri (GL_TEXTURE_1D, GL_TEXTURE_MIN_FILTER, GL_NEAREST) );
126
+ GL_CHECK ( glTexParameteri (GL_TEXTURE_1D, GL_TEXTURE_MAG_FILTER, GL_NEAREST) );
127
127
UpdatePalette ();
128
- glActiveTexture (GL_TEXTURE0);
128
+ GL_CHECK ( glActiveTexture (GL_TEXTURE0) );
129
129
m_ProjectionMatrix = glm::ortho (0 .0F , static_cast <float >(g_FrameMan.GetBackBuffer8 ()->w ), 0 .0F , static_cast <float >(g_FrameMan.GetBackBuffer8 ()->h ), -1 .0F , 1 .0F );
130
130
}
131
131
132
132
void PostProcessMan::UpdatePalette () {
133
- glBindTexture (GL_TEXTURE_1D, m_Palette8Texture);
133
+ GL_CHECK ( glBindTexture (GL_TEXTURE_1D, m_Palette8Texture) );
134
134
std::array<unsigned int , c_PaletteEntriesNumber> palette;
135
135
for (int i = 0 ; i < c_PaletteEntriesNumber; ++i) {
136
136
if (i == g_MaskColor) {
@@ -139,22 +139,22 @@ void PostProcessMan::UpdatePalette() {
139
139
}
140
140
palette[i] = makeacol32 (getr8 (i), getg8 (i), getb8 (i), 255 );
141
141
}
142
- glTexSubImage1D (GL_TEXTURE_1D, 0 , 0 , c_PaletteEntriesNumber, GL_RGBA, GL_UNSIGNED_BYTE, palette.data ());
143
- glTexParameteri (GL_TEXTURE_1D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
144
- glTexParameteri (GL_TEXTURE_1D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
142
+ GL_CHECK ( glTexSubImage1D (GL_TEXTURE_1D, 0 , 0 , c_PaletteEntriesNumber, GL_RGBA, GL_UNSIGNED_BYTE, palette.data () ));
143
+ GL_CHECK ( glTexParameteri (GL_TEXTURE_1D, GL_TEXTURE_MIN_FILTER, GL_NEAREST) );
144
+ GL_CHECK ( glTexParameteri (GL_TEXTURE_1D, GL_TEXTURE_MAG_FILTER, GL_NEAREST) );
145
145
}
146
146
147
147
void PostProcessMan::LazyInitBitmap (BITMAP* bitmap) {
148
148
m_BitmapTextures.emplace_back (new GLBitmapInfo);
149
- glGenTextures (1 , &m_BitmapTextures.back ()->m_Texture );
149
+ GL_CHECK ( glGenTextures (1 , &m_BitmapTextures.back ()->m_Texture ) );
150
150
bitmap->extra = reinterpret_cast <void *>(m_BitmapTextures.back ().get ());
151
- glPixelStorei (GL_UNPACK_ALIGNMENT, bitmap_color_depth (bitmap) == 8 ? 1 : 4 );
152
- glActiveTexture (GL_TEXTURE0);
153
- glBindTexture (GL_TEXTURE_2D, reinterpret_cast <GLBitmapInfo*>(bitmap->extra )->m_Texture );
154
- glTexImage2D (GL_TEXTURE_2D, 0 , GL_RGBA, bitmap->w , bitmap->h , 0 , GL_RGBA, GL_UNSIGNED_BYTE, bitmap->line [0 ]);
155
- glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
156
- glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
157
- glGenerateMipmap (GL_TEXTURE_2D);
151
+ GL_CHECK ( glPixelStorei (GL_UNPACK_ALIGNMENT, bitmap_color_depth (bitmap) == 8 ? 1 : 4 ) );
152
+ GL_CHECK ( glActiveTexture (GL_TEXTURE0) );
153
+ GL_CHECK ( glBindTexture (GL_TEXTURE_2D, reinterpret_cast <GLBitmapInfo*>(bitmap->extra )->m_Texture ) );
154
+ GL_CHECK ( glTexImage2D (GL_TEXTURE_2D, 0 , GL_RGBA, bitmap->w , bitmap->h , 0 , GL_RGBA, GL_UNSIGNED_BYTE, bitmap->line [0 ]) );
155
+ GL_CHECK ( glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR) );
156
+ GL_CHECK ( glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR) );
157
+ GL_CHECK ( glGenerateMipmap (GL_TEXTURE_2D) );
158
158
}
159
159
160
160
void PostProcessMan::Destroy () {
@@ -380,12 +380,12 @@ void PostProcessMan::PostProcess() {
380
380
GL_CHECK (glActiveTexture (GL_TEXTURE0));
381
381
GL_CHECK (glBindTexture (GL_TEXTURE_2D, m_BackBuffer8));
382
382
GL_CHECK (glPixelStorei (GL_UNPACK_ALIGNMENT, 1 ));
383
- glTexImage2D (GL_TEXTURE_2D, 0 , GL_RGBA, g_FrameMan.GetBackBuffer8 ()->w , g_FrameMan.GetBackBuffer8 ()->h , 0 , GL_RED, GL_UNSIGNED_BYTE, g_FrameMan.GetBackBuffer8 ()->line [0 ]);
383
+ GL_CHECK ( glTexImage2D (GL_TEXTURE_2D, 0 , GL_RGBA, g_FrameMan.GetBackBuffer8 ()->w , g_FrameMan.GetBackBuffer8 ()->h , 0 , GL_RED, GL_UNSIGNED_BYTE, g_FrameMan.GetBackBuffer8 ()->line [0 ]) );
384
384
GL_CHECK (glActiveTexture (GL_TEXTURE1));
385
385
GL_CHECK (glBindTexture (GL_TEXTURE_1D, m_Palette8Texture));
386
386
GL_CHECK (glBindFramebuffer (GL_DRAW_FRAMEBUFFER, m_BlitFramebuffer));
387
387
GL_CHECK (glFramebufferTexture2D (GL_DRAW_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, m_BackBuffer32, 0 ));
388
- glViewport (0 , 0 , g_FrameMan.GetBackBuffer8 ()->w , g_FrameMan.GetBackBuffer8 ()->h );
388
+ GL_CHECK ( glViewport (0 , 0 , g_FrameMan.GetBackBuffer8 ()->w , g_FrameMan.GetBackBuffer8 ()->h ) );
389
389
m_Blit8->Use ();
390
390
m_Blit8->SetInt (m_Blit8->GetTextureUniform (), 0 );
391
391
int paletteUniform = m_Blit8->GetUniformLocation (" rtePalette" );
@@ -404,7 +404,7 @@ void PostProcessMan::PostProcess() {
404
404
GL_CHECK (glBlendColor (0 .5F , 0 .5F , 0 .5F , 0 .5F ));
405
405
GL_CHECK (glBindFramebuffer (GL_FRAMEBUFFER, m_PostProcessFramebuffer));
406
406
GL_CHECK (glFramebufferTexture2D (GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, m_BackBuffer32, 0 ));
407
- glViewport (0 , 0 , g_FrameMan.GetBackBuffer8 ()->w , g_FrameMan.GetBackBuffer8 ()->h );
407
+ GL_CHECK ( glViewport (0 , 0 , g_FrameMan.GetBackBuffer8 ()->w , g_FrameMan.GetBackBuffer8 ()->h ) );
408
408
409
409
m_PostProcessShader->Use ();
410
410
@@ -483,8 +483,8 @@ void PostProcessMan::DrawPostScreenEffects() {
483
483
float effectPosY = 0 ;
484
484
float effectStrength = 0 ;
485
485
486
- glActiveTexture (GL_TEXTURE0);
487
- glBindVertexArray (m_VertexArray);
486
+ GL_CHECK ( glActiveTexture (GL_TEXTURE0) );
487
+ GL_CHECK ( glBindVertexArray (m_VertexArray) );
488
488
m_PostProcessShader->Use ();
489
489
m_PostProcessShader->SetInt (m_PostProcessShader->GetTextureUniform (), 0 );
490
490
m_PostProcessShader->SetMatrix4f (m_PostProcessShader->GetProjectionUniform (), m_ProjectionMatrix);
@@ -505,10 +505,10 @@ void PostProcessMan::DrawPostScreenEffects() {
505
505
transformMatrix = glm::rotate (transformMatrix, -postEffect.m_Angle , glm::vec3 (0 , 0 , 1 ));
506
506
transformMatrix = glm::scale (transformMatrix, glm::vec3 (effectBitmap->w * 0 .5f , effectBitmap->h * 0 .5f , 1.0 ));
507
507
508
- glBindTexture (GL_TEXTURE_2D, reinterpret_cast <GLBitmapInfo*>(postEffect.m_Bitmap ->extra )->m_Texture );
508
+ GL_CHECK ( glBindTexture (GL_TEXTURE_2D, reinterpret_cast <GLBitmapInfo*>(postEffect.m_Bitmap ->extra )->m_Texture ) );
509
509
m_PostProcessShader->SetMatrix4f (m_PostProcessShader->GetTransformUniform (), transformMatrix);
510
510
511
- glDrawArrays (GL_TRIANGLE_STRIP, 0 , 4 );
511
+ GL_CHECK ( glDrawArrays (GL_TRIANGLE_STRIP, 0 , 4 ) );
512
512
}
513
513
}
514
514
}
0 commit comments