KiCad PCB EDA Suite
KIGFX::ANTIALIASING_SMAA Class Reference

#include <antialiasing.h>

Inheritance diagram for KIGFX::ANTIALIASING_SMAA:
KIGFX::OPENGL_PRESENTOR

Public Member Functions

 ANTIALIASING_SMAA (OPENGL_COMPOSITOR *aCompositor, SMAA_QUALITY aQuality)
 
bool Init () override
 
unsigned int CreateBuffer () override
 
VECTOR2U GetInternalBufferSize () override
 
void OnLostBuffers () override
 
void Begin () override
 
void DrawBuffer (GLuint buffer) override
 
void Present () override
 

Private Member Functions

void loadShaders ()
 
void updateUniforms ()
 

Private Attributes

bool areBuffersInitialized
 
unsigned int smaaBaseBuffer
 
unsigned int smaaEdgesBuffer
 
unsigned int smaaBlendBuffer
 
unsigned int smaaAreaTex
 
unsigned int smaaSearchTex
 
bool shadersLoaded
 
std::unique_ptr< SHADERpass_1_shader
 
GLint pass_1_metrics
 
std::unique_ptr< SHADERpass_2_shader
 
GLint pass_2_metrics
 
std::unique_ptr< SHADERpass_3_shader
 
GLint pass_3_metrics
 
SMAA_QUALITY quality
 
OPENGL_COMPOSITORcompositor
 

Detailed Description

Definition at line 110 of file antialiasing.h.

Constructor & Destructor Documentation

ANTIALIASING_SMAA::ANTIALIASING_SMAA ( OPENGL_COMPOSITOR aCompositor,
SMAA_QUALITY  aQuality 
)

Definition at line 234 of file antialiasing.cpp.

References pass_1_metrics, pass_2_metrics, pass_3_metrics, smaaAreaTex, smaaBaseBuffer, smaaBlendBuffer, smaaEdgesBuffer, and smaaSearchTex.

235  : areBuffersInitialized( false ), shadersLoaded( false ),
236  quality( aQuality ), compositor( aCompositor )
237 {
238  smaaBaseBuffer = 0;
239  smaaEdgesBuffer = 0;
240  smaaBlendBuffer = 0;
241  smaaAreaTex = 0;
242  smaaSearchTex = 0;
243 
244  pass_1_metrics = 0;
245  pass_2_metrics = 0;
246  pass_3_metrics = 0;
247 }
unsigned int smaaEdgesBuffer
Definition: antialiasing.h:132
unsigned int smaaSearchTex
Definition: antialiasing.h:137
unsigned int smaaBlendBuffer
Definition: antialiasing.h:133
OPENGL_COMPOSITOR * compositor
Definition: antialiasing.h:151
unsigned int smaaBaseBuffer
Definition: antialiasing.h:131

Member Function Documentation

void ANTIALIASING_SMAA::Begin ( )
overridevirtual

Implements KIGFX::OPENGL_PRESENTOR.

Definition at line 446 of file antialiasing.cpp.

References KIGFX::COLOR4D::BLACK, KIGFX::OPENGL_COMPOSITOR::ClearBuffer(), compositor, KIGFX::OPENGL_COMPOSITOR::SetBuffer(), and smaaBaseBuffer.

447 {
450 }
static const COLOR4D BLACK
Definition: color4d.h:301
virtual void ClearBuffer(const COLOR4D &aColor) override
Function ClearBuffer() clears the selected buffer (set by the SetBuffer() function).
virtual void SetBuffer(unsigned int aBufferHandle) override
Function SetBuffer() sets the selected buffer as the rendering target.
OPENGL_COMPOSITOR * compositor
Definition: antialiasing.h:151
unsigned int smaaBaseBuffer
Definition: antialiasing.h:131
unsigned int ANTIALIASING_SMAA::CreateBuffer ( )
overridevirtual

Implements KIGFX::OPENGL_PRESENTOR.

Definition at line 433 of file antialiasing.cpp.

References compositor, KIGFX::OPENGL_COMPOSITOR::CreateBuffer(), and KIGFX::OPENGL_COMPOSITOR::GetScreenSize().

434 {
436 }
VECTOR2U GetScreenSize() const
virtual unsigned int CreateBuffer() override
Function CreateBuffer() prepares a new buffer that may be used as a rendering target.
OPENGL_COMPOSITOR * compositor
Definition: antialiasing.h:151
void ANTIALIASING_SMAA::DrawBuffer ( GLuint  buffer)
overridevirtual

Implements KIGFX::OPENGL_PRESENTOR.

Definition at line 439 of file antialiasing.cpp.

References compositor, KIGFX::OPENGL_COMPOSITOR::DrawBuffer(), and smaaBaseBuffer.

440 {
441  // draw to internal buffer
443 }
virtual void DrawBuffer(unsigned int aBufferHandle) override
Function DrawBuffer() draws the selected buffer to the output buffer.
OPENGL_COMPOSITOR * compositor
Definition: antialiasing.h:151
unsigned int smaaBaseBuffer
Definition: antialiasing.h:131
VECTOR2U ANTIALIASING_SMAA::GetInternalBufferSize ( )
overridevirtual

Implements KIGFX::OPENGL_PRESENTOR.

Definition at line 250 of file antialiasing.cpp.

References compositor, and KIGFX::OPENGL_COMPOSITOR::GetScreenSize().

251 {
252  return compositor->GetScreenSize();
253 }
VECTOR2U GetScreenSize() const
OPENGL_COMPOSITOR * compositor
Definition: antialiasing.h:151
bool ANTIALIASING_SMAA::Init ( )
overridevirtual

Implements KIGFX::OPENGL_PRESENTOR.

Definition at line 399 of file antialiasing.cpp.

References areBuffersInitialized, compositor, KIGFX::OPENGL_COMPOSITOR::CreateBuffer(), loadShaders(), shadersLoaded, smaaBaseBuffer, smaaBlendBuffer, smaaEdgesBuffer, and updateUniforms().

400 {
401  if( !shadersLoaded )
402  loadShaders();
403 
404  if( !areBuffersInitialized )
405  {
407  glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR );
408  glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR );
409 
411  glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR );
412  glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR );
413 
415  glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR );
416  glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR );
417 
418  updateUniforms();
419  areBuffersInitialized = true;
420  }
421 
422  // Nothing to initialize
423  return true;
424 }
unsigned int smaaEdgesBuffer
Definition: antialiasing.h:132
unsigned int smaaBlendBuffer
Definition: antialiasing.h:133
virtual unsigned int CreateBuffer() override
Function CreateBuffer() prepares a new buffer that may be used as a rendering target.
OPENGL_COMPOSITOR * compositor
Definition: antialiasing.h:151
unsigned int smaaBaseBuffer
Definition: antialiasing.h:131
void ANTIALIASING_SMAA::loadShaders ( )
private

Definition at line 256 of file antialiasing.cpp.

References AREATEX_HEIGHT, AREATEX_WIDTH, areaTexBytes, checkGlError(), KIGFX::HIGH, pass_1_metrics, pass_1_shader, pass_2_metrics, pass_2_shader, pass_3_metrics, pass_3_shader, quality, SEARCHTEX_HEIGHT, SEARCHTEX_WIDTH, searchTexBytes, KIGFX::SHADER_TYPE_FRAGMENT, KIGFX::SHADER_TYPE_VERTEX, shadersLoaded, KIGFX::BUILTIN_SHADERS::smaa_base_shader_p1, KIGFX::BUILTIN_SHADERS::smaa_base_shader_p2, KIGFX::BUILTIN_SHADERS::smaa_base_shader_p3, KIGFX::BUILTIN_SHADERS::smaa_base_shader_p4, KIGFX::BUILTIN_SHADERS::smaa_pass_1_fragment_shader, KIGFX::BUILTIN_SHADERS::smaa_pass_1_vertex_shader, KIGFX::BUILTIN_SHADERS::smaa_pass_2_fragment_shader, KIGFX::BUILTIN_SHADERS::smaa_pass_2_vertex_shader, KIGFX::BUILTIN_SHADERS::smaa_pass_3_fragment_shader, KIGFX::BUILTIN_SHADERS::smaa_pass_3_vertex_shader, smaaAreaTex, and smaaSearchTex.

Referenced by Init().

257 {
258  // Load constant textures
259  glEnable( GL_TEXTURE_2D );
260  glActiveTexture( GL_TEXTURE0 );
261 
262  glGenTextures( 1, &smaaAreaTex );
263  glBindTexture( GL_TEXTURE_2D, smaaAreaTex );
264  glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE );
265  glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE );
266  glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR );
267  glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR );
268  glTexImage2D( GL_TEXTURE_2D, 0, GL_RG8, AREATEX_WIDTH, AREATEX_HEIGHT, 0, GL_RG, GL_UNSIGNED_BYTE, areaTexBytes );
269  checkGlError( "loading smaa area tex" );
270 
271  glGenTextures( 1, &smaaSearchTex );
272  glBindTexture( GL_TEXTURE_2D, smaaSearchTex );
273  glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE );
274  glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE );
275  glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR );
276  glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR );
277  glTexImage2D( GL_TEXTURE_2D, 0, GL_R8, SEARCHTEX_WIDTH, SEARCHTEX_HEIGHT, 0, GL_RED, GL_UNSIGNED_BYTE, searchTexBytes );
278  checkGlError( "loading smaa search tex" );
279 
280  std::string quality_string;
281 
282  if( quality == SMAA_QUALITY::HIGH )
283  {
284  quality_string = "#define SMAA_PRESET_HIGH\n";
285  }
286  else
287  {
288  quality_string = "#define SMAA_PRESET_ULTRA\n";
289  }
290 
291 
292  // set up shaders
293  std::string vert_preamble( R"SHADER(
294 #version 120
295 #define SMAA_GLSL_2_1
296 #define SMAA_INCLUDE_VS 1
297 #define SMAA_INCLUDE_PS 0
298 uniform vec4 SMAA_RT_METRICS;
299 )SHADER" );
300 
301  std::string frag_preamble( R"SHADER(
302 #version 120
303 #define SMAA_GLSL_2_1
304 #define SMAA_INCLUDE_VS 0
305 #define SMAA_INCLUDE_PS 1
306 uniform vec4 SMAA_RT_METRICS;
307 )SHADER" );
308 
309  std::string smaa_source =
311  + std::string( BUILTIN_SHADERS::smaa_base_shader_p2 )
312  + std::string( BUILTIN_SHADERS::smaa_base_shader_p3 )
313  + std::string( BUILTIN_SHADERS::smaa_base_shader_p4 );
314 
315  //
316  // Set up pass 1 Shader
317  //
318  pass_1_shader.reset( new SHADER() );
319  pass_1_shader->LoadShaderFromStrings( KIGFX::SHADER_TYPE_VERTEX, vert_preamble,
320  quality_string, smaa_source, BUILTIN_SHADERS::smaa_pass_1_vertex_shader );
321  pass_1_shader->LoadShaderFromStrings( KIGFX::SHADER_TYPE_FRAGMENT, frag_preamble,
322  quality_string, smaa_source, BUILTIN_SHADERS::smaa_pass_1_fragment_shader );
323  pass_1_shader->Link();
324  checkGlError( "linking pass 1 shader" );
325 
326  GLint smaaColorTexParameter = pass_1_shader->AddParameter( "colorTex" ); checkGlError( "pass1: getting colorTex uniform" );
327  pass_1_metrics = pass_1_shader->AddParameter( "SMAA_RT_METRICS" ); checkGlError( "pass1: getting metrics uniform" );
328 
329  pass_1_shader->Use(); checkGlError( "pass1: using shader" );
330  pass_1_shader->SetParameter( smaaColorTexParameter, 0 ); checkGlError( "pass1: setting colorTex uniform" );
331  pass_1_shader->Deactivate(); checkGlError( "pass1: deactivating shader" );
332 
333  //
334  // set up pass 2 shader
335  //
336  pass_2_shader.reset( new SHADER() );
337  pass_2_shader->LoadShaderFromStrings( KIGFX::SHADER_TYPE_VERTEX, vert_preamble,
338  quality_string, smaa_source, BUILTIN_SHADERS::smaa_pass_2_vertex_shader );
339  pass_2_shader->LoadShaderFromStrings( KIGFX::SHADER_TYPE_FRAGMENT, frag_preamble,
340  quality_string, smaa_source, BUILTIN_SHADERS::smaa_pass_2_fragment_shader );
341  pass_2_shader->Link();
342  checkGlError( "linking pass 2 shader" );
343 
344  GLint smaaEdgesTexParameter = pass_2_shader->AddParameter( "edgesTex" ); checkGlError( "pass2: getting colorTex uniform" );
345  GLint smaaAreaTexParameter = pass_2_shader->AddParameter( "areaTex" ); checkGlError( "pass2: getting areaTex uniform" );
346  GLint smaaSearchTexParameter = pass_2_shader->AddParameter( "searchTex" ); checkGlError( "pass2: getting searchTex uniform" );
347  pass_2_metrics = pass_2_shader->AddParameter( "SMAA_RT_METRICS" ); checkGlError( "pass2: getting metrics uniform" );
348 
349  pass_2_shader->Use(); checkGlError( "pass2: using shader" );
350  pass_2_shader->SetParameter( smaaEdgesTexParameter, 0 ); checkGlError( "pass2: setting colorTex uniform" );
351  pass_2_shader->SetParameter( smaaAreaTexParameter, 1 ); checkGlError( "pass2: setting areaTex uniform" );
352  pass_2_shader->SetParameter( smaaSearchTexParameter, 3 ); checkGlError( "pass2: setting searchTex uniform" );
353  pass_2_shader->Deactivate(); checkGlError( "pass2: deactivating shader" );
354 
355  //
356  // set up pass 3 shader
357  //
358  pass_3_shader.reset( new SHADER() );
359  pass_3_shader->LoadShaderFromStrings( KIGFX::SHADER_TYPE_VERTEX, vert_preamble,
360  quality_string, smaa_source, BUILTIN_SHADERS::smaa_pass_3_vertex_shader );
361  pass_3_shader->LoadShaderFromStrings( KIGFX::SHADER_TYPE_FRAGMENT, frag_preamble,
362  quality_string, smaa_source, BUILTIN_SHADERS::smaa_pass_3_fragment_shader );
363  pass_3_shader->Link();
364 
365  GLint smaaP3ColorTexParameter = pass_3_shader->AddParameter( "colorTex" ); checkGlError( "pass3: getting colorTex uniform" );
366  GLint smaaBlendTexParameter = pass_3_shader->AddParameter( "blendTex" ); checkGlError( "pass3: getting blendTex uniform" );
367  pass_3_metrics = pass_3_shader->AddParameter( "SMAA_RT_METRICS" ); checkGlError( "pass3: getting metrics uniform" );
368 
369  pass_3_shader->Use(); checkGlError( "pass3: using shader" );
370  pass_3_shader->SetParameter( smaaP3ColorTexParameter, 0 ); checkGlError( "pass3: setting colorTex uniform" );
371  pass_3_shader->SetParameter( smaaBlendTexParameter, 1 ); checkGlError( "pass3: setting blendTex uniform" );
372  pass_3_shader->Deactivate(); checkGlError( "pass3: deactivating shader" );
373 
374  shadersLoaded = true;
375 }
#define SEARCHTEX_WIDTH
Copyright (C) 2013 Jorge Jimenez (jorge@iryoku.com) Copyright (C) 2013 Jose I.
Definition: SmaaSearchTex.h:33
#define AREATEX_HEIGHT
Definition: SmaaAreaTex.h:34
const char smaa_pass_3_fragment_shader[]
Fragment shader.
Definition: shader.h:45
int checkGlError(const std::string &aInfo, bool aThrow)
Checks if one of recent OpenGL operations has failed.
Definition: utils.cpp:30
unsigned int smaaSearchTex
Definition: antialiasing.h:137
#define AREATEX_WIDTH
Copyright (C) 2013 Jorge Jimenez (jorge@iryoku.com) Copyright (C) 2013 Jose I.
Definition: SmaaAreaTex.h:33
static const unsigned char searchTexBytes[]
Stored in R8 format.
Definition: SmaaSearchTex.h:43
const char smaa_base_shader_p4[]
const char smaa_pass_1_fragment_shader[]
#define SEARCHTEX_HEIGHT
Definition: SmaaSearchTex.h:34
const unsigned char areaTexBytes[]
Stored in R8G8 format.
Definition: SmaaAreaTex.h:43
const char smaa_pass_2_fragment_shader[]
Vertex shader.
Definition: shader.h:44
Class SHADER provides the access to the OpenGL shaders.
Definition: shader.h:74
std::unique_ptr< SHADER > pass_2_shader
Definition: antialiasing.h:144
std::unique_ptr< SHADER > pass_3_shader
Definition: antialiasing.h:147
const char smaa_base_shader_p3[]
std::unique_ptr< SHADER > pass_1_shader
Definition: antialiasing.h:141
void ANTIALIASING_SMAA::OnLostBuffers ( )
overridevirtual

Implements KIGFX::OPENGL_PRESENTOR.

Definition at line 427 of file antialiasing.cpp.

References areBuffersInitialized.

428 {
429  areBuffersInitialized = false;
430 }
void ANTIALIASING_SMAA::Present ( )
overridevirtual

Implements KIGFX::OPENGL_PRESENTOR.

Definition at line 479 of file antialiasing.cpp.

References KIGFX::COLOR4D::BLACK, checkGlError(), KIGFX::OPENGL_COMPOSITOR::ClearBuffer(), compositor, KIGFX::OPENGL_COMPOSITOR::DIRECT_RENDERING, KIGFX::OPENGL_COMPOSITOR::GetBufferTexture(), pass_1_shader, pass_2_shader, pass_3_shader, KIGFX::OPENGL_COMPOSITOR::SetBuffer(), smaaAreaTex, smaaBaseBuffer, smaaBlendBuffer, smaaEdgesBuffer, and smaaSearchTex.

480 {
481  auto sourceTexture = compositor->GetBufferTexture( smaaBaseBuffer );
482 
483  glDisable( GL_BLEND );
484  glDisable( GL_DEPTH_TEST );
485  glEnable( GL_TEXTURE_2D );
486 
487  //
488  // pass 1: main-buffer -> smaaEdgesBuffer
489  //
492 
493  glActiveTexture( GL_TEXTURE0 );
494  glBindTexture( GL_TEXTURE_2D, sourceTexture ); checkGlError( "binding colorTex" );
495  pass_1_shader->Use(); checkGlError( "using smaa pass 1 shader" );
496  draw_fullscreen_triangle();
497  pass_1_shader->Deactivate();
498 
499  //
500  // pass 2: smaaEdgesBuffer -> smaaBlendBuffer
501  //
504 
505  auto edgesTex = compositor->GetBufferTexture( smaaEdgesBuffer );
506 
507  glActiveTexture( GL_TEXTURE0 );
508  glBindTexture( GL_TEXTURE_2D, edgesTex );
509  glActiveTexture( GL_TEXTURE1 );
510  glBindTexture( GL_TEXTURE_2D, smaaAreaTex );
511  glActiveTexture( GL_TEXTURE3 );
512  glBindTexture( GL_TEXTURE_2D, smaaSearchTex );
513 
514  pass_2_shader->Use();
515  draw_fullscreen_triangle();
516  pass_2_shader->Deactivate();
517 
518  //
519  // pass 3: colorTex + BlendBuffer -> output
520  //
523  auto blendTex = compositor->GetBufferTexture( smaaBlendBuffer );
524 
525  glActiveTexture( GL_TEXTURE0 );
526  glBindTexture( GL_TEXTURE_2D, sourceTexture );
527  glActiveTexture( GL_TEXTURE1 );
528  glBindTexture( GL_TEXTURE_2D, blendTex );
529 
530  pass_3_shader->Use();
531  draw_fullscreen_triangle();
532  pass_3_shader->Deactivate();
533 }
static const COLOR4D BLACK
Definition: color4d.h:301
unsigned int smaaEdgesBuffer
Definition: antialiasing.h:132
int checkGlError(const std::string &aInfo, bool aThrow)
Checks if one of recent OpenGL operations has failed.
Definition: utils.cpp:30
unsigned int smaaSearchTex
Definition: antialiasing.h:137
static const unsigned int DIRECT_RENDERING
virtual void ClearBuffer(const COLOR4D &aColor) override
Function ClearBuffer() clears the selected buffer (set by the SetBuffer() function).
unsigned int smaaBlendBuffer
Definition: antialiasing.h:133
virtual void SetBuffer(unsigned int aBufferHandle) override
Function SetBuffer() sets the selected buffer as the rendering target.
std::unique_ptr< SHADER > pass_2_shader
Definition: antialiasing.h:144
std::unique_ptr< SHADER > pass_3_shader
Definition: antialiasing.h:147
GLenum GetBufferTexture(unsigned int aBufferHandle)
std::unique_ptr< SHADER > pass_1_shader
Definition: antialiasing.h:141
OPENGL_COMPOSITOR * compositor
Definition: antialiasing.h:151
unsigned int smaaBaseBuffer
Definition: antialiasing.h:131
void ANTIALIASING_SMAA::updateUniforms ( )
private

Definition at line 378 of file antialiasing.cpp.

References checkGlError(), compositor, KIGFX::OPENGL_COMPOSITOR::GetScreenSize(), pass_1_metrics, pass_1_shader, pass_2_metrics, pass_2_shader, pass_3_metrics, and pass_3_shader.

Referenced by Init().

379 {
380  auto dims = compositor->GetScreenSize();
381 
382  pass_1_shader->Use(); checkGlError( "pass1: using shader" );
383  pass_1_shader->SetParameter( pass_1_metrics,
384  1.f / float( dims.x ), 1.f / float( dims.y ), float( dims.x ), float( dims.y ) ); checkGlError( "pass1: setting metrics uniform" );
385  pass_1_shader->Deactivate(); checkGlError( "pass1: deactivating shader" );
386 
387  pass_2_shader->Use(); checkGlError( "pass2: using shader" );
388  pass_2_shader->SetParameter( pass_2_metrics,
389  1.f / float( dims.x ), 1.f / float( dims.y ), float( dims.x ), float( dims.y ) ); checkGlError( "pass2: setting metrics uniform" );
390  pass_2_shader->Deactivate(); checkGlError( "pass2: deactivating shader" );
391 
392  pass_3_shader->Use(); checkGlError( "pass3: using shader" );
393  pass_3_shader->SetParameter( pass_3_metrics,
394  1.f / float( dims.x ), 1.f / float( dims.y ), float( dims.x ), float( dims.y ) ); checkGlError( "pass3: setting metrics uniform" );
395  pass_3_shader->Deactivate(); checkGlError( "pass3: deactivating shader" );
396 }
int checkGlError(const std::string &aInfo, bool aThrow)
Checks if one of recent OpenGL operations has failed.
Definition: utils.cpp:30
std::unique_ptr< SHADER > pass_2_shader
Definition: antialiasing.h:144
VECTOR2U GetScreenSize() const
std::unique_ptr< SHADER > pass_3_shader
Definition: antialiasing.h:147
std::unique_ptr< SHADER > pass_1_shader
Definition: antialiasing.h:141
OPENGL_COMPOSITOR * compositor
Definition: antialiasing.h:151

Member Data Documentation

bool KIGFX::ANTIALIASING_SMAA::areBuffersInitialized
private

Definition at line 129 of file antialiasing.h.

Referenced by Init(), and OnLostBuffers().

OPENGL_COMPOSITOR* KIGFX::ANTIALIASING_SMAA::compositor
private
GLint KIGFX::ANTIALIASING_SMAA::pass_1_metrics
private

Definition at line 142 of file antialiasing.h.

Referenced by ANTIALIASING_SMAA(), loadShaders(), and updateUniforms().

std::unique_ptr<SHADER> KIGFX::ANTIALIASING_SMAA::pass_1_shader
private

Definition at line 141 of file antialiasing.h.

Referenced by loadShaders(), Present(), and updateUniforms().

GLint KIGFX::ANTIALIASING_SMAA::pass_2_metrics
private

Definition at line 145 of file antialiasing.h.

Referenced by ANTIALIASING_SMAA(), loadShaders(), and updateUniforms().

std::unique_ptr<SHADER> KIGFX::ANTIALIASING_SMAA::pass_2_shader
private

Definition at line 144 of file antialiasing.h.

Referenced by loadShaders(), Present(), and updateUniforms().

GLint KIGFX::ANTIALIASING_SMAA::pass_3_metrics
private

Definition at line 148 of file antialiasing.h.

Referenced by ANTIALIASING_SMAA(), loadShaders(), and updateUniforms().

std::unique_ptr<SHADER> KIGFX::ANTIALIASING_SMAA::pass_3_shader
private

Definition at line 147 of file antialiasing.h.

Referenced by loadShaders(), Present(), and updateUniforms().

SMAA_QUALITY KIGFX::ANTIALIASING_SMAA::quality
private

Definition at line 150 of file antialiasing.h.

Referenced by loadShaders().

bool KIGFX::ANTIALIASING_SMAA::shadersLoaded
private

Definition at line 139 of file antialiasing.h.

Referenced by Init(), and loadShaders().

unsigned int KIGFX::ANTIALIASING_SMAA::smaaAreaTex
private

Definition at line 136 of file antialiasing.h.

Referenced by ANTIALIASING_SMAA(), loadShaders(), and Present().

unsigned int KIGFX::ANTIALIASING_SMAA::smaaBaseBuffer
private

Definition at line 131 of file antialiasing.h.

Referenced by ANTIALIASING_SMAA(), Begin(), DrawBuffer(), Init(), and Present().

unsigned int KIGFX::ANTIALIASING_SMAA::smaaBlendBuffer
private

Definition at line 133 of file antialiasing.h.

Referenced by ANTIALIASING_SMAA(), Init(), and Present().

unsigned int KIGFX::ANTIALIASING_SMAA::smaaEdgesBuffer
private

Definition at line 132 of file antialiasing.h.

Referenced by ANTIALIASING_SMAA(), Init(), and Present().

unsigned int KIGFX::ANTIALIASING_SMAA::smaaSearchTex
private

Definition at line 137 of file antialiasing.h.

Referenced by ANTIALIASING_SMAA(), loadShaders(), and Present().


The documentation for this class was generated from the following files: