mirror of
https://github.com/RetroDECK/Supermodel.git
synced 2024-11-24 14:45:40 +00:00
32 lines
884 B
C
32 lines
884 B
C
|
#pragma once
|
||
|
|
||
|
#include "FBO.h"
|
||
|
#include "New3D/GLSLShader.h"
|
||
|
|
||
|
// This class just implements super sampling. Super sampling looks fantastic but is quite expensive.
|
||
|
// 8x and beyond values can start to eat ridiculous amounts of memory / gpu time, for less and less noticable returns
|
||
|
// 4x works and looks great
|
||
|
// values such as 3 are also possible, that works out 9 samples per pixel
|
||
|
// The algorithm is super simple, just add up all samples and divide by the number
|
||
|
|
||
|
class SuperAA
|
||
|
{
|
||
|
public:
|
||
|
SuperAA(int aaValue);
|
||
|
~SuperAA();
|
||
|
|
||
|
void Init(int width, int height); // width & height are real window dimensions
|
||
|
void Draw(); // this is a no-op if AA is 1, since we'll be drawing straight on the back buffer anyway
|
||
|
|
||
|
GLuint GetTargetID();
|
||
|
|
||
|
private:
|
||
|
FBO m_fbo;
|
||
|
GLSLShader m_shader;
|
||
|
const int m_aa;
|
||
|
GLuint m_vao;
|
||
|
int m_width;
|
||
|
int m_height;
|
||
|
};
|
||
|
|