99 lines
2.3 KiB
C++
99 lines
2.3 KiB
C++
/*
|
|
* Filters.cpp
|
|
*
|
|
* Created on: Jun 18, 2008
|
|
* Author: pete
|
|
*/
|
|
|
|
#include "Common.hpp"
|
|
|
|
#ifdef USE_GLES1
|
|
#include <GLES/gl.h>
|
|
#else
|
|
#ifdef __APPLE__
|
|
#include <OpenGL/gl.h>
|
|
#include <OpenGL/glu.h>
|
|
#else
|
|
#include <GL/gl.h>
|
|
#include <GL/glu.h>
|
|
#endif
|
|
#endif
|
|
|
|
#include "Filters.hpp"
|
|
|
|
void Brighten::Draw(RenderContext &context)
|
|
{
|
|
float points[4][2] = {{-0.5, -0.5},
|
|
{-0.5, 0.5},
|
|
{ 0.5, 0.5},
|
|
{ 0.5, -0.5}};
|
|
|
|
glEnableClientState(GL_VERTEX_ARRAY);
|
|
glVertexPointer(2,GL_FLOAT,0,points);
|
|
|
|
glColor4f(1.0, 1.0, 1.0, 1.0);
|
|
glBlendFunc(GL_ONE_MINUS_DST_COLOR, GL_ZERO);
|
|
glDrawArrays(GL_TRIANGLE_FAN,0,4);
|
|
glBlendFunc(GL_ZERO, GL_DST_COLOR);
|
|
glDrawArrays(GL_TRIANGLE_FAN,0,4);
|
|
glBlendFunc(GL_ONE_MINUS_DST_COLOR, GL_ZERO);
|
|
glDrawArrays(GL_TRIANGLE_FAN,0,4);
|
|
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
|
|
|
glDisableClientState(GL_VERTEX_ARRAY);
|
|
}
|
|
|
|
void Darken::Draw(RenderContext &context)
|
|
{
|
|
float points[4][2] = {{-0.5, -0.5},
|
|
{-0.5, 0.5},
|
|
{ 0.5, 0.5},
|
|
{ 0.5, -0.5}};
|
|
|
|
glEnableClientState(GL_VERTEX_ARRAY);
|
|
glVertexPointer(2,GL_FLOAT,0,points);
|
|
glColor4f(1.0, 1.0, 1.0, 1.0);
|
|
glBlendFunc(GL_ZERO, GL_DST_COLOR);
|
|
glDrawArrays(GL_TRIANGLE_FAN,0,4);
|
|
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
|
glDisableClientState(GL_VERTEX_ARRAY);
|
|
}
|
|
|
|
void Invert::Draw(RenderContext &context)
|
|
{
|
|
float points[4][2] = {{-0.5, -0.5},
|
|
{-0.5, 0.5},
|
|
{ 0.5, 0.5},
|
|
{ 0.5, -0.5}};
|
|
|
|
glEnableClientState(GL_VERTEX_ARRAY);
|
|
glVertexPointer(2,GL_FLOAT,0,points);
|
|
glColor4f(1.0, 1.0, 1.0, 1.0);
|
|
glBlendFunc(GL_ONE_MINUS_DST_COLOR, GL_ZERO);
|
|
glDrawArrays(GL_TRIANGLE_FAN,0,4);
|
|
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
|
|
|
glDisableClientState(GL_VERTEX_ARRAY);
|
|
}
|
|
|
|
void Solarize::Draw(RenderContext &context)
|
|
{
|
|
float points[4][2] = {{-0.5, -0.5},
|
|
{-0.5, 0.5},
|
|
{ 0.5, 0.5},
|
|
{ 0.5, -0.5}};
|
|
|
|
glEnableClientState(GL_VERTEX_ARRAY);
|
|
glVertexPointer(2,GL_FLOAT,0,points);
|
|
|
|
glColor4f(1.0, 1.0, 1.0, 1.0);
|
|
glBlendFunc(GL_ZERO, GL_ONE_MINUS_DST_COLOR);
|
|
glDrawArrays(GL_TRIANGLE_FAN,0,4);
|
|
glBlendFunc(GL_DST_COLOR, GL_ONE);
|
|
glDrawArrays(GL_TRIANGLE_FAN,0,4);
|
|
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
|
|
|
glDisableClientState(GL_VERTEX_ARRAY);
|
|
}
|
|
|