forked from LeenkxTeam/LNXSDK
34 lines
776 B
C
34 lines
776 B
C
|
#pragma once
|
||
|
|
||
|
#include "ogl.h"
|
||
|
#include <Kore/Math/Vector.h>
|
||
|
|
||
|
namespace Kore {
|
||
|
enum LightType { DirectionalLight, PointLight, SpotLight };
|
||
|
|
||
|
class LightImpl {
|
||
|
public:
|
||
|
LightImpl();
|
||
|
virtual ~LightImpl();
|
||
|
|
||
|
protected:
|
||
|
// Submit light parameters to OpenGL (lightID is GL_LIGHT<n> where <n> is in the range [0, 7])
|
||
|
void submitLightParamsToGL(GLenum lightID) const;
|
||
|
|
||
|
// Submit light transformation to OpenGL (lightID is GL_LIGHT<n> where <n> is in the range [0, 7]).
|
||
|
void submitLightTransformToGL(GLenum lightID) const;
|
||
|
|
||
|
LightType myType;
|
||
|
vec4 myAmbient;
|
||
|
vec4 myDiffuse;
|
||
|
vec4 mySpecular;
|
||
|
vec4 myPositionOrDirection;
|
||
|
vec3 mySpotDirection;
|
||
|
float mySpotExponent;
|
||
|
float mySpotCutoff;
|
||
|
float myConstAttn;
|
||
|
float myLinearAttn;
|
||
|
float myQuadricAttn;
|
||
|
};
|
||
|
}
|