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 233 of file antialiasing.cpp.

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

234  : areBuffersInitialized( false ), shadersLoaded( false ),
235  quality( aQuality ), compositor( aCompositor )
236 {
237  smaaBaseBuffer = 0;
238  smaaEdgesBuffer = 0;
239  smaaBlendBuffer = 0;
240  smaaAreaTex = 0;
241  smaaSearchTex = 0;
242 
243  pass_1_metrics = 0;
244  pass_2_metrics = 0;
245  pass_3_metrics = 0;
246 }
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 445 of file antialiasing.cpp.

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

446 {
449 }
virtual void ClearBuffer() 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 432 of file antialiasing.cpp.

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

433 {
435 }
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 438 of file antialiasing.cpp.

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

439 {
440  // draw to internal buffer
442 }
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 249 of file antialiasing.cpp.

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

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

Implements KIGFX::OPENGL_PRESENTOR.

Definition at line 398 of file antialiasing.cpp.

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

399 {
400  if( !shadersLoaded )
401  loadShaders();
402 
403  if( !areBuffersInitialized )
404  {
406  glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR );
407  glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR );
408 
410  glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR );
411  glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR );
412 
414  glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR );
415  glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR );
416 
417  updateUniforms();
418  areBuffersInitialized = true;
419  }
420 
421  // Nothing to initialize
422  return true;
423 }
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 255 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().

256 {
257  // Load constant textures
258  glEnable( GL_TEXTURE_2D );
259  glActiveTexture( GL_TEXTURE0 );
260 
261  glGenTextures( 1, &smaaAreaTex );
262  glBindTexture( GL_TEXTURE_2D, smaaAreaTex );
263  glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE );
264  glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE );
265  glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR );
266  glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR );
267  glTexImage2D( GL_TEXTURE_2D, 0, GL_RG8, AREATEX_WIDTH, AREATEX_HEIGHT, 0, GL_RG, GL_UNSIGNED_BYTE, areaTexBytes );
268  checkGlError( "loading smaa area tex" );
269 
270  glGenTextures( 1, &smaaSearchTex );
271  glBindTexture( GL_TEXTURE_2D, smaaSearchTex );
272  glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE );
273  glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE );
274  glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR );
275  glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR );
276  glTexImage2D( GL_TEXTURE_2D, 0, GL_R8, SEARCHTEX_WIDTH, SEARCHTEX_HEIGHT, 0, GL_RED, GL_UNSIGNED_BYTE, searchTexBytes );
277  checkGlError( "loading smaa search tex" );
278 
279  std::string quality_string;
280 
281  if( quality == SMAA_QUALITY::HIGH )
282  {
283  quality_string = "#define SMAA_PRESET_HIGH\n";
284  }
285  else
286  {
287  quality_string = "#define SMAA_PRESET_ULTRA\n";
288  }
289 
290 
291  // set up shaders
292  std::string vert_preamble( R"SHADER(
293 #version 120
294 #define SMAA_GLSL_2_1
295 #define SMAA_INCLUDE_VS 1
296 #define SMAA_INCLUDE_PS 0
297 uniform vec4 SMAA_RT_METRICS;
298 )SHADER" );
299 
300  std::string frag_preamble( R"SHADER(
301 #version 120
302 #define SMAA_GLSL_2_1
303 #define SMAA_INCLUDE_VS 0
304 #define SMAA_INCLUDE_PS 1
305 uniform vec4 SMAA_RT_METRICS;
306 )SHADER" );
307 
308  std::string smaa_source =
310  + std::string( BUILTIN_SHADERS::smaa_base_shader_p2 )
311  + std::string( BUILTIN_SHADERS::smaa_base_shader_p3 )
312  + std::string( BUILTIN_SHADERS::smaa_base_shader_p4 );
313 
314  //
315  // Set up pass 1 Shader
316  //
317  pass_1_shader.reset( new SHADER() );
318  pass_1_shader->LoadShaderFromStrings( KIGFX::SHADER_TYPE_VERTEX, vert_preamble,
319  quality_string, smaa_source, BUILTIN_SHADERS::smaa_pass_1_vertex_shader );
320  pass_1_shader->LoadShaderFromStrings( KIGFX::SHADER_TYPE_FRAGMENT, frag_preamble,
321  quality_string, smaa_source, BUILTIN_SHADERS::smaa_pass_1_fragment_shader );
322  pass_1_shader->Link();
323  checkGlError( "linking pass 1 shader" );
324 
325  GLint smaaColorTexParameter = pass_1_shader->AddParameter( "colorTex" ); checkGlError( "pass1: getting colorTex uniform" );
326  pass_1_metrics = pass_1_shader->AddParameter( "SMAA_RT_METRICS" ); checkGlError( "pass1: getting metrics uniform" );
327 
328  pass_1_shader->Use(); checkGlError( "pass1: using shader" );
329  pass_1_shader->SetParameter( smaaColorTexParameter, 0 ); checkGlError( "pass1: setting colorTex uniform" );
330  pass_1_shader->Deactivate(); checkGlError( "pass1: deactivating shader" );
331 
332  //
333  // set up pass 2 shader
334  //
335  pass_2_shader.reset( new SHADER() );
336  pass_2_shader->LoadShaderFromStrings( KIGFX::SHADER_TYPE_VERTEX, vert_preamble,
337  quality_string, smaa_source, BUILTIN_SHADERS::smaa_pass_2_vertex_shader );
338  pass_2_shader->LoadShaderFromStrings( KIGFX::SHADER_TYPE_FRAGMENT, frag_preamble,
339  quality_string, smaa_source, BUILTIN_SHADERS::smaa_pass_2_fragment_shader );
340  pass_2_shader->Link();
341  checkGlError( "linking pass 2 shader" );
342 
343  GLint smaaEdgesTexParameter = pass_2_shader->AddParameter( "edgesTex" ); checkGlError( "pass2: getting colorTex uniform" );
344  GLint smaaAreaTexParameter = pass_2_shader->AddParameter( "areaTex" ); checkGlError( "pass2: getting areaTex uniform" );
345  GLint smaaSearchTexParameter = pass_2_shader->AddParameter( "searchTex" ); checkGlError( "pass2: getting searchTex uniform" );
346  pass_2_metrics = pass_2_shader->AddParameter( "SMAA_RT_METRICS" ); checkGlError( "pass2: getting metrics uniform" );
347 
348  pass_2_shader->Use(); checkGlError( "pass2: using shader" );
349  pass_2_shader->SetParameter( smaaEdgesTexParameter, 0 ); checkGlError( "pass2: setting colorTex uniform" );
350  pass_2_shader->SetParameter( smaaAreaTexParameter, 1 ); checkGlError( "pass2: setting areaTex uniform" );
351  pass_2_shader->SetParameter( smaaSearchTexParameter, 3 ); checkGlError( "pass2: setting searchTex uniform" );
352  pass_2_shader->Deactivate(); checkGlError( "pass2: deactivating shader" );
353 
354  //
355  // set up pass 3 shader
356  //
357  pass_3_shader.reset( new SHADER() );
358  pass_3_shader->LoadShaderFromStrings( KIGFX::SHADER_TYPE_VERTEX, vert_preamble,
359  quality_string, smaa_source, BUILTIN_SHADERS::smaa_pass_3_vertex_shader );
360  pass_3_shader->LoadShaderFromStrings( KIGFX::SHADER_TYPE_FRAGMENT, frag_preamble,
361  quality_string, smaa_source, BUILTIN_SHADERS::smaa_pass_3_fragment_shader );
362  pass_3_shader->Link();
363 
364  GLint smaaP3ColorTexParameter = pass_3_shader->AddParameter( "colorTex" ); checkGlError( "pass3: getting colorTex uniform" );
365  GLint smaaBlendTexParameter = pass_3_shader->AddParameter( "blendTex" ); checkGlError( "pass3: getting blendTex uniform" );
366  pass_3_metrics = pass_3_shader->AddParameter( "SMAA_RT_METRICS" ); checkGlError( "pass3: getting metrics uniform" );
367 
368  pass_3_shader->Use(); checkGlError( "pass3: using shader" );
369  pass_3_shader->SetParameter( smaaP3ColorTexParameter, 0 ); checkGlError( "pass3: setting colorTex uniform" );
370  pass_3_shader->SetParameter( smaaBlendTexParameter, 1 ); checkGlError( "pass3: setting blendTex uniform" );
371  pass_3_shader->Deactivate(); checkGlError( "pass3: deactivating shader" );
372 
373  shadersLoaded = true;
374 }
#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 426 of file antialiasing.cpp.

References areBuffersInitialized.

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

Implements KIGFX::OPENGL_PRESENTOR.

Definition at line 478 of file antialiasing.cpp.

References 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.

479 {
480  auto sourceTexture = compositor->GetBufferTexture( smaaBaseBuffer );
481 
482  glDisable( GL_BLEND );
483  glDisable( GL_DEPTH_TEST );
484  glEnable( GL_TEXTURE_2D );
485 
486  //
487  // pass 1: main-buffer -> smaaEdgesBuffer
488  //
491 
492  glActiveTexture( GL_TEXTURE0 );
493  glBindTexture( GL_TEXTURE_2D, sourceTexture ); checkGlError( "binding colorTex" );
494  pass_1_shader->Use(); checkGlError( "using smaa pass 1 shader" );
495  draw_fullscreen_triangle();
496  pass_1_shader->Deactivate();
497 
498  //
499  // pass 2: smaaEdgesBuffer -> smaaBlendBuffer
500  //
503 
504  auto edgesTex = compositor->GetBufferTexture( smaaEdgesBuffer );
505 
506  glActiveTexture( GL_TEXTURE0 );
507  glBindTexture( GL_TEXTURE_2D, edgesTex );
508  glActiveTexture( GL_TEXTURE1 );
509  glBindTexture( GL_TEXTURE_2D, smaaAreaTex );
510  glActiveTexture( GL_TEXTURE3 );
511  glBindTexture( GL_TEXTURE_2D, smaaSearchTex );
512 
513  pass_2_shader->Use();
514  draw_fullscreen_triangle();
515  pass_2_shader->Deactivate();
516 
517  //
518  // pass 3: colorTex + BlendBuffer -> output
519  //
522  auto blendTex = compositor->GetBufferTexture( smaaBlendBuffer );
523 
524  glActiveTexture( GL_TEXTURE0 );
525  glBindTexture( GL_TEXTURE_2D, sourceTexture );
526  glActiveTexture( GL_TEXTURE1 );
527  glBindTexture( GL_TEXTURE_2D, blendTex );
528 
529  pass_3_shader->Use();
530  draw_fullscreen_triangle();
531  pass_3_shader->Deactivate();
532 }
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() 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 377 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().

378 {
379  auto dims = compositor->GetScreenSize();
380 
381  pass_1_shader->Use(); checkGlError( "pass1: using shader" );
382  pass_1_shader->SetParameter( pass_1_metrics,
383  1.f / float( dims.x ), 1.f / float( dims.y ), float( dims.x ), float( dims.y ) ); checkGlError( "pass1: setting metrics uniform" );
384  pass_1_shader->Deactivate(); checkGlError( "pass1: deactivating shader" );
385 
386  pass_2_shader->Use(); checkGlError( "pass2: using shader" );
387  pass_2_shader->SetParameter( pass_2_metrics,
388  1.f / float( dims.x ), 1.f / float( dims.y ), float( dims.x ), float( dims.y ) ); checkGlError( "pass2: setting metrics uniform" );
389  pass_2_shader->Deactivate(); checkGlError( "pass2: deactivating shader" );
390 
391  pass_3_shader->Use(); checkGlError( "pass3: using shader" );
392  pass_3_shader->SetParameter( pass_3_metrics,
393  1.f / float( dims.x ), 1.f / float( dims.y ), float( dims.x ), float( dims.y ) ); checkGlError( "pass3: setting metrics uniform" );
394  pass_3_shader->Deactivate(); checkGlError( "pass3: deactivating shader" );
395 }
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: