2025-01-22 16:18:30 +01:00

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;
};
}