Imported glslang library. Refactoring shader manager.
This commit is contained in:
3
.gitmodules
vendored
3
.gitmodules
vendored
@@ -7,3 +7,6 @@
|
|||||||
[submodule "hydra"]
|
[submodule "hydra"]
|
||||||
path = hydra
|
path = hydra
|
||||||
url = git@github.com:KrakenEngine/hydra.git
|
url = git@github.com:KrakenEngine/hydra.git
|
||||||
|
[submodule "3rdparty/glslang"]
|
||||||
|
path = 3rdparty/glslang
|
||||||
|
url = git@github.com:KhronosGroup/glslang.git
|
||||||
|
|||||||
1
3rdparty/glslang
vendored
Submodule
1
3rdparty/glslang
vendored
Submodule
Submodule 3rdparty/glslang added at 83af469512
@@ -114,6 +114,18 @@ find_package(Vulkan REQUIRED)
|
|||||||
list (APPEND EXTRA_LIBS Vulkan::Vulkan)
|
list (APPEND EXTRA_LIBS Vulkan::Vulkan)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
|
# ---- GLSlang ----
|
||||||
|
if(NOT ANDROID)
|
||||||
|
set(ENABLE_GLSLANG_BINARIES OFF)
|
||||||
|
set(ENABLE_GLSLANG_INSTALL OFF)
|
||||||
|
set(ENABLE_SPVREMAPPER OFF)
|
||||||
|
add_subdirectory(3rdparty/glslang)
|
||||||
|
include_directories(3rdparty/glslang/Public)
|
||||||
|
list (APPEND EXTRA_LIBS "glslang")
|
||||||
|
list (APPEND EXTRA_LIBS "SPIRV")
|
||||||
|
endif()
|
||||||
|
|
||||||
# ---- OpenGL ----
|
# ---- OpenGL ----
|
||||||
if(ANDROID)
|
if(ANDROID)
|
||||||
list (APPEND EXTRA_LIBS "EGL")
|
list (APPEND EXTRA_LIBS "EGL")
|
||||||
|
|||||||
@@ -69,8 +69,8 @@ add_sources(KRScene.cpp)
|
|||||||
add_sources(KRSceneManager.cpp)
|
add_sources(KRSceneManager.cpp)
|
||||||
add_sources(KRSource.cpp)
|
add_sources(KRSource.cpp)
|
||||||
add_sources(KRSourceManager.cpp)
|
add_sources(KRSourceManager.cpp)
|
||||||
add_sources(KRShader.cpp)
|
add_sources(KRPipeline.cpp)
|
||||||
add_sources(KRShaderManager.cpp)
|
add_sources(KRPipelineManager.cpp)
|
||||||
add_sources(KRSpotLight.cpp)
|
add_sources(KRSpotLight.cpp)
|
||||||
add_sources(KRSprite.cpp)
|
add_sources(KRSprite.cpp)
|
||||||
add_sources(KRTexture.cpp)
|
add_sources(KRTexture.cpp)
|
||||||
|
|||||||
@@ -96,9 +96,9 @@ void KRAmbientZone::render(KRCamera *pCamera, std::vector<KRPointLight *> &point
|
|||||||
if(renderPass == KRNode::RENDER_PASS_FORWARD_TRANSPARENT && bVisualize) {
|
if(renderPass == KRNode::RENDER_PASS_FORWARD_TRANSPARENT && bVisualize) {
|
||||||
Matrix4 sphereModelMatrix = getModelMatrix();
|
Matrix4 sphereModelMatrix = getModelMatrix();
|
||||||
|
|
||||||
KRShader *pShader = getContext().getShaderManager()->getShader("visualize_overlay", pCamera, point_lights, directional_lights, spot_lights, 0, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, renderPass);
|
KRPipeline *pPipeline = getContext().getPipelineManager()->getPipeline("visualize_overlay", pCamera, point_lights, directional_lights, spot_lights, 0, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, renderPass);
|
||||||
|
|
||||||
if(getContext().getShaderManager()->selectShader(*pCamera, pShader, viewport, sphereModelMatrix, point_lights, directional_lights, spot_lights, 0, renderPass, Vector3::Zero(), 0.0f, Vector4::Zero())) {
|
if(getContext().getPipelineManager()->selectPipeline(*pCamera, pPipeline, viewport, sphereModelMatrix, point_lights, directional_lights, spot_lights, 0, renderPass, Vector3::Zero(), 0.0f, Vector4::Zero())) {
|
||||||
|
|
||||||
// Enable additive blending
|
// Enable additive blending
|
||||||
GLDEBUG(glEnable(GL_BLEND));
|
GLDEBUG(glEnable(GL_BLEND));
|
||||||
|
|||||||
@@ -180,9 +180,9 @@ void KRAudioSource::render(KRCamera *pCamera, std::vector<KRPointLight *> &point
|
|||||||
if(renderPass == KRNode::RENDER_PASS_FORWARD_TRANSPARENT && bVisualize) {
|
if(renderPass == KRNode::RENDER_PASS_FORWARD_TRANSPARENT && bVisualize) {
|
||||||
Matrix4 sphereModelMatrix = getModelMatrix();
|
Matrix4 sphereModelMatrix = getModelMatrix();
|
||||||
|
|
||||||
KRShader *pShader = getContext().getShaderManager()->getShader("visualize_overlay", pCamera, point_lights, directional_lights, spot_lights, 0, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, renderPass);
|
KRPipeline *pShader = getContext().getPipelineManager()->getPipeline("visualize_overlay", pCamera, point_lights, directional_lights, spot_lights, 0, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, renderPass);
|
||||||
|
|
||||||
if(getContext().getShaderManager()->selectShader(*pCamera, pShader, viewport, sphereModelMatrix, point_lights, directional_lights, spot_lights, 0, renderPass, Vector3::Zero(), 0.0f, Vector4::Zero())) {
|
if(getContext().getPipelineManager()->selectPipeline(*pCamera, pShader, viewport, sphereModelMatrix, point_lights, directional_lights, spot_lights, 0, renderPass, Vector3::Zero(), 0.0f, Vector4::Zero())) {
|
||||||
|
|
||||||
// Enable additive blending
|
// Enable additive blending
|
||||||
GLDEBUG(glEnable(GL_BLEND));
|
GLDEBUG(glEnable(GL_BLEND));
|
||||||
|
|||||||
@@ -61,9 +61,9 @@ void KRBone::render(KRCamera *pCamera, std::vector<KRPointLight *> &point_lights
|
|||||||
// Disable z-buffer test
|
// Disable z-buffer test
|
||||||
GLDEBUG(glDisable(GL_DEPTH_TEST));
|
GLDEBUG(glDisable(GL_DEPTH_TEST));
|
||||||
|
|
||||||
KRShader *pShader = getContext().getShaderManager()->getShader("visualize_overlay", pCamera, point_lights, directional_lights, spot_lights, 0, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, renderPass);
|
KRPipeline *pShader = getContext().getPipelineManager()->getPipeline("visualize_overlay", pCamera, point_lights, directional_lights, spot_lights, 0, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, renderPass);
|
||||||
|
|
||||||
if(getContext().getShaderManager()->selectShader(*pCamera, pShader, viewport, sphereModelMatrix, point_lights, directional_lights, spot_lights, 0, renderPass, Vector3::Zero(), 0.0f, Vector4::Zero())) {
|
if(getContext().getPipelineManager()->selectPipeline(*pCamera, pShader, viewport, sphereModelMatrix, point_lights, directional_lights, spot_lights, 0, renderPass, Vector3::Zero(), 0.0f, Vector4::Zero())) {
|
||||||
std::vector<KRMesh *> sphereModels = getContext().getMeshManager()->getModel("__sphere");
|
std::vector<KRMesh *> sphereModels = getContext().getMeshManager()->getModel("__sphere");
|
||||||
if(sphereModels.size()) {
|
if(sphereModels.size()) {
|
||||||
for(int i=0; i < sphereModels[0]->getSubmeshCount(); i++) {
|
for(int i=0; i < sphereModels[0]->getSubmeshCount(); i++) {
|
||||||
|
|||||||
@@ -312,7 +312,7 @@ void KRCamera::renderFrame(GLint defaultFBO, GLint renderBufferWidth, GLint rend
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(m_pSkyBoxTexture) {
|
if(m_pSkyBoxTexture) {
|
||||||
getContext().getShaderManager()->selectShader("sky_box", *this, std::vector<KRPointLight *>(), std::vector<KRDirectionalLight *>(), std::vector<KRSpotLight *>(), 0, m_viewport, Matrix4(), false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, KRNode::RENDER_PASS_FORWARD_OPAQUE, Vector3::Zero(), 0.0f, Vector4::Zero());
|
getContext().getPipelineManager()->selectPipeline("sky_box", *this, std::vector<KRPointLight *>(), std::vector<KRDirectionalLight *>(), std::vector<KRSpotLight *>(), 0, m_viewport, Matrix4(), false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, KRNode::RENDER_PASS_FORWARD_OPAQUE, Vector3::Zero(), 0.0f, Vector4::Zero());
|
||||||
|
|
||||||
getContext().getTextureManager()->selectTexture(0, m_pSkyBoxTexture, 0.0f, KRTexture::TEXTURE_USAGE_SKY_CUBE);
|
getContext().getTextureManager()->selectTexture(0, m_pSkyBoxTexture, 0.0f, KRTexture::TEXTURE_USAGE_SKY_CUBE);
|
||||||
|
|
||||||
@@ -473,14 +473,14 @@ void KRCamera::renderFrame(GLint defaultFBO, GLint renderBufferWidth, GLint rend
|
|||||||
GLDEBUG(glBlendFunc(GL_ONE, GL_ONE));
|
GLDEBUG(glBlendFunc(GL_ONE, GL_ONE));
|
||||||
|
|
||||||
|
|
||||||
KRShader *pVisShader = getContext().getShaderManager()->getShader("visualize_overlay", this, std::vector<KRPointLight *>(), std::vector<KRDirectionalLight *>(), std::vector<KRSpotLight *>(), 0, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, KRNode::RENDER_PASS_FORWARD_TRANSPARENT);
|
KRPipeline *pVisShader = getContext().getPipelineManager()->getPipeline("visualize_overlay", this, std::vector<KRPointLight *>(), std::vector<KRDirectionalLight *>(), std::vector<KRSpotLight *>(), 0, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, KRNode::RENDER_PASS_FORWARD_TRANSPARENT);
|
||||||
|
|
||||||
m_pContext->getMeshManager()->bindVBO(&getContext().getMeshManager()->KRENGINE_VBO_DATA_3D_CUBE_VERTICES, 1.0f);
|
m_pContext->getMeshManager()->bindVBO(&getContext().getMeshManager()->KRENGINE_VBO_DATA_3D_CUBE_VERTICES, 1.0f);
|
||||||
for(unordered_map<AABB, int>::iterator itr=m_viewport.getVisibleBounds().begin(); itr != m_viewport.getVisibleBounds().end(); itr++) {
|
for(unordered_map<AABB, int>::iterator itr=m_viewport.getVisibleBounds().begin(); itr != m_viewport.getVisibleBounds().end(); itr++) {
|
||||||
Matrix4 matModel = Matrix4();
|
Matrix4 matModel = Matrix4();
|
||||||
matModel.scale((*itr).first.size() * 0.5f);
|
matModel.scale((*itr).first.size() * 0.5f);
|
||||||
matModel.translate((*itr).first.center());
|
matModel.translate((*itr).first.center());
|
||||||
if(getContext().getShaderManager()->selectShader(*this, pVisShader, m_viewport, matModel, std::vector<KRPointLight *>(), std::vector<KRDirectionalLight *>(), std::vector<KRSpotLight *>(), 0, KRNode::RENDER_PASS_FORWARD_TRANSPARENT, Vector3::Zero(), 0.0f, Vector4::Zero())) {
|
if(getContext().getPipelineManager()->selectPipeline(*this, pVisShader, m_viewport, matModel, std::vector<KRPointLight *>(), std::vector<KRDirectionalLight *>(), std::vector<KRSpotLight *>(), 0, KRNode::RENDER_PASS_FORWARD_TRANSPARENT, Vector3::Zero(), 0.0f, Vector4::Zero())) {
|
||||||
GLDEBUG(glDrawArrays(GL_TRIANGLE_STRIP, 0, 14));
|
GLDEBUG(glDrawArrays(GL_TRIANGLE_STRIP, 0, 14));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -492,7 +492,7 @@ void KRCamera::renderFrame(GLint defaultFBO, GLint renderBufferWidth, GLint rend
|
|||||||
GL_POP_GROUP_MARKER;
|
GL_POP_GROUP_MARKER;
|
||||||
|
|
||||||
|
|
||||||
// fprintf(stderr, "VBO Mem: %i Kbyte Texture Mem: %i/%i Kbyte (active/total) Shader Handles: %i Visible Bounds: %i Max Texture LOD: %i\n", (int)m_pContext->getMeshManager()->getMemUsed() / 1024, (int)m_pContext->getTextureManager()->getActiveMemUsed() / 1024, (int)m_pContext->getTextureManager()->getMemUsed() / 1024, (int)m_pContext->getShaderManager()->getShaderHandlesUsed(), (int)m_visibleBounds.size(), m_pContext->getTextureManager()->getLODDimCap());
|
// fprintf(stderr, "VBO Mem: %i Kbyte Texture Mem: %i/%i Kbyte (active/total) Shader Handles: %i Visible Bounds: %i Max Texture LOD: %i\n", (int)m_pContext->getMeshManager()->getMemUsed() / 1024, (int)m_pContext->getTextureManager()->getActiveMemUsed() / 1024, (int)m_pContext->getTextureManager()->getMemUsed() / 1024, (int)m_pContext->getPipelineManager()->getShaderHandlesUsed(), (int)m_visibleBounds.size(), m_pContext->getTextureManager()->getLODDimCap());
|
||||||
GL_PUSH_GROUP_MARKER("Post Processing");
|
GL_PUSH_GROUP_MARKER("Post Processing");
|
||||||
|
|
||||||
GLDEBUG(glBindFramebuffer(GL_FRAMEBUFFER, defaultFBO));
|
GLDEBUG(glBindFramebuffer(GL_FRAMEBUFFER, defaultFBO));
|
||||||
@@ -692,10 +692,10 @@ void KRCamera::renderPost()
|
|||||||
|
|
||||||
GLDEBUG(glViewport(0, 0, (GLsizei)m_viewport.getSize().x, (GLsizei)m_viewport.getSize().y));
|
GLDEBUG(glViewport(0, 0, (GLsizei)m_viewport.getSize().x, (GLsizei)m_viewport.getSize().y));
|
||||||
GLDEBUG(glDisable(GL_DEPTH_TEST));
|
GLDEBUG(glDisable(GL_DEPTH_TEST));
|
||||||
KRShader *postShader = m_pContext->getShaderManager()->getShader("PostShader", this, std::vector<KRPointLight *>(), std::vector<KRDirectionalLight *>(), std::vector<KRSpotLight *>(), 0, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, KRNode::RENDER_PASS_FORWARD_TRANSPARENT);
|
KRPipeline *postShader = m_pContext->getPipelineManager()->getPipeline("PostShader", this, std::vector<KRPointLight *>(), std::vector<KRDirectionalLight *>(), std::vector<KRSpotLight *>(), 0, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, KRNode::RENDER_PASS_FORWARD_TRANSPARENT);
|
||||||
|
|
||||||
Vector3 rim_color;
|
Vector3 rim_color;
|
||||||
getContext().getShaderManager()->selectShader(*this, postShader, m_viewport, Matrix4(), std::vector<KRPointLight *>(), std::vector<KRDirectionalLight *>(), std::vector<KRSpotLight *>(), 0, KRNode::RENDER_PASS_FORWARD_TRANSPARENT, rim_color, 0.0f, m_fade_color);
|
getContext().getPipelineManager()->selectPipeline(*this, postShader, m_viewport, Matrix4(), std::vector<KRPointLight *>(), std::vector<KRDirectionalLight *>(), std::vector<KRSpotLight *>(), 0, KRNode::RENDER_PASS_FORWARD_TRANSPARENT, rim_color, 0.0f, m_fade_color);
|
||||||
|
|
||||||
m_pContext->getTextureManager()->selectTexture(GL_TEXTURE_2D, 0, compositeDepthTexture);
|
m_pContext->getTextureManager()->selectTexture(GL_TEXTURE_2D, 0, compositeDepthTexture);
|
||||||
m_pContext->getTextureManager()->selectTexture(GL_TEXTURE_2D, 1, compositeColorTexture);
|
m_pContext->getTextureManager()->selectTexture(GL_TEXTURE_2D, 1, compositeColorTexture);
|
||||||
@@ -714,13 +714,13 @@ void KRCamera::renderPost()
|
|||||||
|
|
||||||
|
|
||||||
// if(bShowShadowBuffer) {
|
// if(bShowShadowBuffer) {
|
||||||
// KRShader *blitShader = m_pContext->getShaderManager()->getShader("simple_blit", this, false, false, false, 0, false, false, false, false, false, false, false, false, false, false, false, false, false, KRNode::RENDER_PASS_FORWARD_TRANSPARENT);
|
// KRPipeline *blitShader = m_pContext->getPipelineManager()->getShader("simple_blit", this, false, false, false, 0, false, false, false, false, false, false, false, false, false, false, false, false, false, KRNode::RENDER_PASS_FORWARD_TRANSPARENT);
|
||||||
//
|
//
|
||||||
// for(int iShadow=0; iShadow < m_cShadowBuffers; iShadow++) {
|
// for(int iShadow=0; iShadow < m_cShadowBuffers; iShadow++) {
|
||||||
// Matrix4 viewMatrix = Matrix4();
|
// Matrix4 viewMatrix = Matrix4();
|
||||||
// viewMatrix.scale(0.20, 0.20, 0.20);
|
// viewMatrix.scale(0.20, 0.20, 0.20);
|
||||||
// viewMatrix.translate(-0.70, 0.70 - 0.45 * iShadow, 0.0);
|
// viewMatrix.translate(-0.70, 0.70 - 0.45 * iShadow, 0.0);
|
||||||
// getContext().getShaderManager()->selectShader(blitShader, KRViewport(getViewportSize(), viewMatrix, Matrix4()), shadowViewports, Matrix4(), Vector3(), NULL, 0, KRNode::RENDER_PASS_FORWARD_TRANSPARENT);
|
// getContext().getPipelineManager()->selectShader(blitShader, KRViewport(getViewportSize(), viewMatrix, Matrix4()), shadowViewports, Matrix4(), Vector3(), NULL, 0, KRNode::RENDER_PASS_FORWARD_TRANSPARENT);
|
||||||
// m_pContext->getTextureManager()->selectTexture(1, NULL);
|
// m_pContext->getTextureManager()->selectTexture(1, NULL);
|
||||||
// m_pContext->getMeshManager()->bindVBO(&getContext().getMeshManager()->KRENGINE_VBO_DATA_2D_SQUARE_VERTICES);
|
// m_pContext->getMeshManager()->bindVBO(&getContext().getMeshManager()->KRENGINE_VBO_DATA_2D_SQUARE_VERTICES);
|
||||||
// m_pContext->getTextureManager()->_setActiveTexture(0);
|
// m_pContext->getTextureManager()->_setActiveTexture(0);
|
||||||
@@ -878,8 +878,8 @@ void KRCamera::renderPost()
|
|||||||
GLDEBUG(glEnable(GL_BLEND));
|
GLDEBUG(glEnable(GL_BLEND));
|
||||||
GLDEBUG(glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA));
|
GLDEBUG(glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA));
|
||||||
|
|
||||||
KRShader *fontShader = m_pContext->getShaderManager()->getShader("debug_font", this, std::vector<KRPointLight *>(), std::vector<KRDirectionalLight *>(), std::vector<KRSpotLight *>(), 0, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, KRNode::RENDER_PASS_FORWARD_TRANSPARENT);
|
KRPipeline *fontShader = m_pContext->getPipelineManager()->getPipeline("debug_font", this, std::vector<KRPointLight *>(), std::vector<KRDirectionalLight *>(), std::vector<KRSpotLight *>(), 0, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, KRNode::RENDER_PASS_FORWARD_TRANSPARENT);
|
||||||
getContext().getShaderManager()->selectShader(*this, fontShader, m_viewport, Matrix4(), std::vector<KRPointLight *>(), std::vector<KRDirectionalLight *>(), std::vector<KRSpotLight *>(), 0, KRNode::RENDER_PASS_FORWARD_TRANSPARENT, Vector3::Zero(), 0.0f, Vector4::Zero());
|
getContext().getPipelineManager()->selectPipeline(*this, fontShader, m_viewport, Matrix4(), std::vector<KRPointLight *>(), std::vector<KRDirectionalLight *>(), std::vector<KRSpotLight *>(), 0, KRNode::RENDER_PASS_FORWARD_TRANSPARENT, Vector3::Zero(), 0.0f, Vector4::Zero());
|
||||||
|
|
||||||
m_pContext->getTextureManager()->selectTexture(0, m_pContext->getTextureManager()->getTexture("font"), 0.0f, KRTexture::TEXTURE_USAGE_UI);
|
m_pContext->getTextureManager()->selectTexture(0, m_pContext->getTextureManager()->getTexture("font"), 0.0f, KRTexture::TEXTURE_USAGE_UI);
|
||||||
|
|
||||||
|
|||||||
@@ -34,7 +34,7 @@
|
|||||||
|
|
||||||
#include "KREngine-common.h"
|
#include "KREngine-common.h"
|
||||||
|
|
||||||
#include "KRShader.h"
|
#include "KRPipeline.h"
|
||||||
#include "KRContextObject.h"
|
#include "KRContextObject.h"
|
||||||
#include "KRTexture.h"
|
#include "KRTexture.h"
|
||||||
#include "KRContext.h"
|
#include "KRContext.h"
|
||||||
|
|||||||
@@ -196,9 +196,9 @@ void KRCollider::render(KRCamera *pCamera, std::vector<KRPointLight *> &point_li
|
|||||||
|
|
||||||
GL_PUSH_GROUP_MARKER("Debug Overlays");
|
GL_PUSH_GROUP_MARKER("Debug Overlays");
|
||||||
|
|
||||||
KRShader *pShader = getContext().getShaderManager()->getShader("visualize_overlay", pCamera, point_lights, directional_lights, spot_lights, 0, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, renderPass);
|
KRPipeline *pShader = getContext().getPipelineManager()->getPipeline("visualize_overlay", pCamera, point_lights, directional_lights, spot_lights, 0, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, renderPass);
|
||||||
|
|
||||||
if(getContext().getShaderManager()->selectShader(*pCamera, pShader, viewport, getModelMatrix(), point_lights, directional_lights, spot_lights, 0, renderPass, Vector3::Zero(), 0.0f, Vector4::Zero())) {
|
if(getContext().getPipelineManager()->selectPipeline(*pCamera, pShader, viewport, getModelMatrix(), point_lights, directional_lights, spot_lights, 0, renderPass, Vector3::Zero(), 0.0f, Vector4::Zero())) {
|
||||||
|
|
||||||
// Enable additive blending
|
// Enable additive blending
|
||||||
GLDEBUG(glEnable(GL_BLEND));
|
GLDEBUG(glEnable(GL_BLEND));
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
int KRContext::KRENGINE_MAX_SHADER_HANDLES;
|
int KRContext::KRENGINE_MAX_PIPELINE_HANDLES;
|
||||||
int KRContext::KRENGINE_GPU_MEM_MAX;
|
int KRContext::KRENGINE_GPU_MEM_MAX;
|
||||||
int KRContext::KRENGINE_GPU_MEM_TARGET;
|
int KRContext::KRENGINE_GPU_MEM_TARGET;
|
||||||
int KRContext::KRENGINE_MAX_TEXTURE_DIM;
|
int KRContext::KRENGINE_MAX_TEXTURE_DIM;
|
||||||
@@ -74,9 +74,9 @@ KRContext::KRContext(const KrInitializeInfo* initializeInfo)
|
|||||||
m_absolute_time = 0.0f;
|
m_absolute_time = 0.0f;
|
||||||
|
|
||||||
m_pBundleManager = new KRBundleManager(*this);
|
m_pBundleManager = new KRBundleManager(*this);
|
||||||
m_pShaderManager = new KRShaderManager(*this);
|
m_pPipelineManager = new KRPipelineManager(*this);
|
||||||
m_pTextureManager = new KRTextureManager(*this);
|
m_pTextureManager = new KRTextureManager(*this);
|
||||||
m_pMaterialManager = new KRMaterialManager(*this, m_pTextureManager, m_pShaderManager);
|
m_pMaterialManager = new KRMaterialManager(*this, m_pTextureManager, m_pPipelineManager);
|
||||||
m_pMeshManager = new KRMeshManager(*this);
|
m_pMeshManager = new KRMeshManager(*this);
|
||||||
m_pSceneManager = new KRSceneManager(*this);
|
m_pSceneManager = new KRSceneManager(*this);
|
||||||
m_pAnimationManager = new KRAnimationManager(*this);
|
m_pAnimationManager = new KRAnimationManager(*this);
|
||||||
@@ -128,9 +128,9 @@ KRContext::~KRContext() {
|
|||||||
m_pMaterialManager = NULL;
|
m_pMaterialManager = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(m_pShaderManager) {
|
if(m_pPipelineManager) {
|
||||||
delete m_pShaderManager;
|
delete m_pPipelineManager;
|
||||||
m_pShaderManager = NULL;
|
m_pPipelineManager = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(m_pAnimationManager) {
|
if(m_pAnimationManager) {
|
||||||
@@ -209,8 +209,8 @@ KRTextureManager *KRContext::getTextureManager() {
|
|||||||
KRMaterialManager *KRContext::getMaterialManager() {
|
KRMaterialManager *KRContext::getMaterialManager() {
|
||||||
return m_pMaterialManager;
|
return m_pMaterialManager;
|
||||||
}
|
}
|
||||||
KRShaderManager *KRContext::getShaderManager() {
|
KRPipelineManager *KRContext::getPipelineManager() {
|
||||||
return m_pShaderManager;
|
return m_pPipelineManager;
|
||||||
}
|
}
|
||||||
KRMeshManager *KRContext::getMeshManager() {
|
KRMeshManager *KRContext::getMeshManager() {
|
||||||
return m_pMeshManager;
|
return m_pMeshManager;
|
||||||
@@ -297,9 +297,53 @@ KRResource* KRContext::loadResource(const std::string &file_name, KRDataBlock *d
|
|||||||
resource = m_pTextureManager->loadTexture(name.c_str(), extension.c_str(), data);
|
resource = m_pTextureManager->loadTexture(name.c_str(), extension.c_str(), data);
|
||||||
} else if(extension.compare("tga") == 0) {
|
} else if(extension.compare("tga") == 0) {
|
||||||
resource = m_pTextureManager->loadTexture(name.c_str(), extension.c_str(), data);
|
resource = m_pTextureManager->loadTexture(name.c_str(), extension.c_str(), data);
|
||||||
} else if(extension.compare("vsh") == 0) {
|
} else if(extension.compare("vert") == 0) {
|
||||||
|
// vertex shader
|
||||||
resource = m_pSourceManager->load(name, extension, data);
|
resource = m_pSourceManager->load(name, extension, data);
|
||||||
} else if(extension.compare("fsh") == 0) {
|
} else if(extension.compare("frag") == 0) {
|
||||||
|
// fragment shader
|
||||||
|
resource = m_pSourceManager->load(name, extension, data);
|
||||||
|
} else if(extension.compare("tesc") == 0) {
|
||||||
|
// tessellation control shader
|
||||||
|
resource = m_pSourceManager->load(name, extension, data);
|
||||||
|
} else if(extension.compare("tese") == 0) {
|
||||||
|
// tessellation evaluation shader
|
||||||
|
resource = m_pSourceManager->load(name, extension, data);
|
||||||
|
} else if(extension.compare("geom") == 0) {
|
||||||
|
// geometry shader
|
||||||
|
resource = m_pSourceManager->load(name, extension, data);
|
||||||
|
} else if(extension.compare("comp") == 0) {
|
||||||
|
// compute shader
|
||||||
|
resource = m_pSourceManager->load(name, extension, data);
|
||||||
|
} else if(extension.compare("mesh") == 0) {
|
||||||
|
// mesh shader
|
||||||
|
resource = m_pSourceManager->load(name, extension, data);
|
||||||
|
} else if(extension.compare("task") == 0) {
|
||||||
|
// task shader
|
||||||
|
resource = m_pSourceManager->load(name, extension, data);
|
||||||
|
} else if(extension.compare("rgen") == 0) {
|
||||||
|
// ray generation shader
|
||||||
|
resource = m_pSourceManager->load(name, extension, data);
|
||||||
|
} else if(extension.compare("rint") == 0) {
|
||||||
|
// ray intersection shader
|
||||||
|
resource = m_pSourceManager->load(name, extension, data);
|
||||||
|
} else if(extension.compare("rahit") == 0) {
|
||||||
|
// ray any hit shader
|
||||||
|
resource = m_pSourceManager->load(name, extension, data);
|
||||||
|
} else if(extension.compare("rchit") == 0) {
|
||||||
|
// ray closest hit shader
|
||||||
|
resource = m_pSourceManager->load(name, extension, data);
|
||||||
|
} else if(extension.compare("rmiss") == 0) {
|
||||||
|
// ray miss shader
|
||||||
|
resource = m_pSourceManager->load(name, extension, data);
|
||||||
|
} else if(extension.compare("rcall") == 0) {
|
||||||
|
// ray callable shader
|
||||||
|
resource = m_pSourceManager->load(name, extension, data);
|
||||||
|
} else if(extension.compare("glsl") == 0) {
|
||||||
|
// glsl included by other shaders
|
||||||
|
resource = m_pSourceManager->load(name, extension, data);
|
||||||
|
} else if(extension.compare("options") == 0) {
|
||||||
|
// shader pre-processor options definition file
|
||||||
resource = m_pSourceManager->load(name, extension, data);
|
resource = m_pSourceManager->load(name, extension, data);
|
||||||
} else if(extension.compare("mtl") == 0) {
|
} else if(extension.compare("mtl") == 0) {
|
||||||
resource = m_pMaterialManager->load(name.c_str(), data);
|
resource = m_pMaterialManager->load(name.c_str(), data);
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
#include "KRSceneManager.h"
|
#include "KRSceneManager.h"
|
||||||
#include "KRTextureManager.h"
|
#include "KRTextureManager.h"
|
||||||
#include "KRMaterialManager.h"
|
#include "KRMaterialManager.h"
|
||||||
#include "KRShaderManager.h"
|
#include "KRPipelineManager.h"
|
||||||
#include "KRMeshManager.h"
|
#include "KRMeshManager.h"
|
||||||
#include "KRAnimationManager.h"
|
#include "KRAnimationManager.h"
|
||||||
#include "KRAnimationCurveManager.h"
|
#include "KRAnimationCurveManager.h"
|
||||||
@@ -26,7 +26,7 @@ class KRAudioManager;
|
|||||||
|
|
||||||
class KRContext {
|
class KRContext {
|
||||||
public:
|
public:
|
||||||
static int KRENGINE_MAX_SHADER_HANDLES;
|
static int KRENGINE_MAX_PIPELINE_HANDLES;
|
||||||
static int KRENGINE_GPU_MEM_MAX;
|
static int KRENGINE_GPU_MEM_MAX;
|
||||||
static int KRENGINE_GPU_MEM_TARGET;
|
static int KRENGINE_GPU_MEM_TARGET;
|
||||||
static int KRENGINE_MAX_TEXTURE_DIM;
|
static int KRENGINE_MAX_TEXTURE_DIM;
|
||||||
@@ -52,7 +52,7 @@ public:
|
|||||||
KRSceneManager *getSceneManager();
|
KRSceneManager *getSceneManager();
|
||||||
KRTextureManager *getTextureManager();
|
KRTextureManager *getTextureManager();
|
||||||
KRMaterialManager *getMaterialManager();
|
KRMaterialManager *getMaterialManager();
|
||||||
KRShaderManager *getShaderManager();
|
KRPipelineManager *getPipelineManager();
|
||||||
KRMeshManager *getMeshManager();
|
KRMeshManager *getMeshManager();
|
||||||
KRAnimationManager *getAnimationManager();
|
KRAnimationManager *getAnimationManager();
|
||||||
KRAnimationCurveManager *getAnimationCurveManager();
|
KRAnimationCurveManager *getAnimationCurveManager();
|
||||||
@@ -114,7 +114,7 @@ private:
|
|||||||
KRSceneManager *m_pSceneManager;
|
KRSceneManager *m_pSceneManager;
|
||||||
KRTextureManager *m_pTextureManager;
|
KRTextureManager *m_pTextureManager;
|
||||||
KRMaterialManager *m_pMaterialManager;
|
KRMaterialManager *m_pMaterialManager;
|
||||||
KRShaderManager *m_pShaderManager;
|
KRPipelineManager *m_pPipelineManager;
|
||||||
KRMeshManager *m_pMeshManager;
|
KRMeshManager *m_pMeshManager;
|
||||||
KRAnimationManager *m_pAnimationManager;
|
KRAnimationManager *m_pAnimationManager;
|
||||||
KRAnimationCurveManager *m_pAnimationCurveManager;
|
KRAnimationCurveManager *m_pAnimationCurveManager;
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
#include "KREngine-common.h"
|
#include "KREngine-common.h"
|
||||||
|
|
||||||
#include "KRDirectionalLight.h"
|
#include "KRDirectionalLight.h"
|
||||||
#include "KRShader.h"
|
#include "KRPipeline.h"
|
||||||
#include "KRContext.h"
|
#include "KRContext.h"
|
||||||
#include "assert.h"
|
#include "assert.h"
|
||||||
#include "KRStockGeometry.h"
|
#include "KRStockGeometry.h"
|
||||||
@@ -109,12 +109,12 @@ void KRDirectionalLight::render(KRCamera *pCamera, std::vector<KRPointLight *> &
|
|||||||
light_direction_view_space = Matrix4::Dot(matModelViewInverseTranspose, light_direction_view_space);
|
light_direction_view_space = Matrix4::Dot(matModelViewInverseTranspose, light_direction_view_space);
|
||||||
light_direction_view_space.normalize();
|
light_direction_view_space.normalize();
|
||||||
|
|
||||||
KRShader *pShader = getContext().getShaderManager()->getShader("light_directional", pCamera, std::vector<KRPointLight *>(), this_light, std::vector<KRSpotLight *>(), 0, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, renderPass);
|
KRPipeline *pShader = getContext().getPipelineManager()->getPipeline("light_directional", pCamera, std::vector<KRPointLight *>(), this_light, std::vector<KRSpotLight *>(), 0, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, renderPass);
|
||||||
if(getContext().getShaderManager()->selectShader(*pCamera, pShader, viewport, getModelMatrix(), std::vector<KRPointLight *>(), this_light, std::vector<KRSpotLight *>(), 0, renderPass, Vector3::Zero(), 0.0f, Vector4::Zero())) {
|
if(getContext().getPipelineManager()->selectPipeline(*pCamera, pShader, viewport, getModelMatrix(), std::vector<KRPointLight *>(), this_light, std::vector<KRSpotLight *>(), 0, renderPass, Vector3::Zero(), 0.0f, Vector4::Zero())) {
|
||||||
|
|
||||||
pShader->setUniform(KRShader::KRENGINE_UNIFORM_LIGHT_DIRECTION_VIEW_SPACE, light_direction_view_space);
|
pShader->setUniform(KRPipeline::KRENGINE_UNIFORM_LIGHT_DIRECTION_VIEW_SPACE, light_direction_view_space);
|
||||||
pShader->setUniform(KRShader::KRENGINE_UNIFORM_LIGHT_COLOR, m_color);
|
pShader->setUniform(KRPipeline::KRENGINE_UNIFORM_LIGHT_COLOR, m_color);
|
||||||
pShader->setUniform(KRShader::KRENGINE_UNIFORM_LIGHT_INTENSITY, m_intensity * 0.01f);
|
pShader->setUniform(KRPipeline::KRENGINE_UNIFORM_LIGHT_INTENSITY, m_intensity * 0.01f);
|
||||||
|
|
||||||
// Disable z-buffer write
|
// Disable z-buffer write
|
||||||
GLDEBUG(glDepthMask(GL_FALSE));
|
GLDEBUG(glDepthMask(GL_FALSE));
|
||||||
|
|||||||
@@ -14,8 +14,8 @@
|
|||||||
#include "KRCamera.h"
|
#include "KRCamera.h"
|
||||||
#include "KRContext.h"
|
#include "KRContext.h"
|
||||||
|
|
||||||
#include "KRShaderManager.h"
|
#include "KRPipelineManager.h"
|
||||||
#include "KRShader.h"
|
#include "KRPipeline.h"
|
||||||
#include "KRStockGeometry.h"
|
#include "KRStockGeometry.h"
|
||||||
#include "KRDirectionalLight.h"
|
#include "KRDirectionalLight.h"
|
||||||
#include "KRSpotLight.h"
|
#include "KRSpotLight.h"
|
||||||
@@ -218,13 +218,13 @@ void KRLight::render(KRCamera *pCamera, std::vector<KRPointLight *> &point_light
|
|||||||
this_point_light.push_back(point_light);
|
this_point_light.push_back(point_light);
|
||||||
}
|
}
|
||||||
|
|
||||||
KRShader *pParticleShader = m_pContext->getShaderManager()->getShader("dust_particle", pCamera, this_point_light, this_directional_light, this_spot_light, 0, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, renderPass);
|
KRPipeline *pParticleShader = m_pContext->getPipelineManager()->getPipeline("dust_particle", pCamera, this_point_light, this_directional_light, this_spot_light, 0, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, renderPass);
|
||||||
|
|
||||||
if(getContext().getShaderManager()->selectShader(*pCamera, pParticleShader, viewport, particleModelMatrix, this_point_light, this_directional_light, this_spot_light, 0, renderPass, Vector3::Zero(), 0.0f, Vector4::Zero())) {
|
if(getContext().getPipelineManager()->selectPipeline(*pCamera, pParticleShader, viewport, particleModelMatrix, this_point_light, this_directional_light, this_spot_light, 0, renderPass, Vector3::Zero(), 0.0f, Vector4::Zero())) {
|
||||||
|
|
||||||
pParticleShader->setUniform(KRShader::KRENGINE_UNIFORM_LIGHT_COLOR, m_color * pCamera->settings.dust_particle_intensity * m_dust_particle_intensity * m_intensity);
|
pParticleShader->setUniform(KRPipeline::KRENGINE_UNIFORM_LIGHT_COLOR, m_color * pCamera->settings.dust_particle_intensity * m_dust_particle_intensity * m_intensity);
|
||||||
pParticleShader->setUniform(KRShader::KRENGINE_UNIFORM_PARTICLE_ORIGIN, Matrix4::DotWDiv(Matrix4::Invert(particleModelMatrix), Vector3::Zero()));
|
pParticleShader->setUniform(KRPipeline::KRENGINE_UNIFORM_PARTICLE_ORIGIN, Matrix4::DotWDiv(Matrix4::Invert(particleModelMatrix), Vector3::Zero()));
|
||||||
pParticleShader->setUniform(KRShader::KRENGINE_UNIFORM_FLARE_SIZE, m_dust_particle_size);
|
pParticleShader->setUniform(KRPipeline::KRENGINE_UNIFORM_FLARE_SIZE, m_dust_particle_size);
|
||||||
|
|
||||||
KRDataBlock particle_index_data;
|
KRDataBlock particle_index_data;
|
||||||
m_pContext->getMeshManager()->bindVBO(m_pContext->getMeshManager()->getRandomParticles(), particle_index_data, (1 << KRMesh::KRENGINE_ATTRIB_VERTEX) | (1 << KRMesh::KRENGINE_ATTRIB_TEXUVA), true, 1.0f);
|
m_pContext->getMeshManager()->bindVBO(m_pContext->getMeshManager()->getRandomParticles(), particle_index_data, (1 << KRMesh::KRENGINE_ATTRIB_VERTEX) | (1 << KRMesh::KRENGINE_ATTRIB_TEXUVA), true, 1.0f);
|
||||||
@@ -254,17 +254,17 @@ void KRLight::render(KRCamera *pCamera, std::vector<KRPointLight *> &point_light
|
|||||||
this_point_light.push_back(point_light);
|
this_point_light.push_back(point_light);
|
||||||
}
|
}
|
||||||
|
|
||||||
KRShader *pFogShader = m_pContext->getShaderManager()->getShader(shader_name, pCamera, this_point_light, this_directional_light, this_spot_light, 0, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, KRNode::RENDER_PASS_ADDITIVE_PARTICLES);
|
KRPipeline *pFogShader = m_pContext->getPipelineManager()->getPipeline(shader_name, pCamera, this_point_light, this_directional_light, this_spot_light, 0, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, KRNode::RENDER_PASS_ADDITIVE_PARTICLES);
|
||||||
|
|
||||||
if(getContext().getShaderManager()->selectShader(*pCamera, pFogShader, viewport, Matrix4(), this_point_light, this_directional_light, this_spot_light, 0, KRNode::RENDER_PASS_VOLUMETRIC_EFFECTS_ADDITIVE, Vector3::Zero(), 0.0f, Vector4::Zero())) {
|
if(getContext().getPipelineManager()->selectPipeline(*pCamera, pFogShader, viewport, Matrix4(), this_point_light, this_directional_light, this_spot_light, 0, KRNode::RENDER_PASS_VOLUMETRIC_EFFECTS_ADDITIVE, Vector3::Zero(), 0.0f, Vector4::Zero())) {
|
||||||
int slice_count = (int)(pCamera->settings.volumetric_environment_quality * 495.0) + 5;
|
int slice_count = (int)(pCamera->settings.volumetric_environment_quality * 495.0) + 5;
|
||||||
|
|
||||||
float slice_near = -pCamera->settings.getPerspectiveNearZ();
|
float slice_near = -pCamera->settings.getPerspectiveNearZ();
|
||||||
float slice_far = -pCamera->settings.volumetric_environment_max_distance;
|
float slice_far = -pCamera->settings.volumetric_environment_max_distance;
|
||||||
float slice_spacing = (slice_far - slice_near) / slice_count;
|
float slice_spacing = (slice_far - slice_near) / slice_count;
|
||||||
|
|
||||||
pFogShader->setUniform(KRShader::KRENGINE_UNIFORM_SLICE_DEPTH_SCALE, Vector2::Create(slice_near, slice_spacing));
|
pFogShader->setUniform(KRPipeline::KRENGINE_UNIFORM_SLICE_DEPTH_SCALE, Vector2::Create(slice_near, slice_spacing));
|
||||||
pFogShader->setUniform(KRShader::KRENGINE_UNIFORM_LIGHT_COLOR, (m_color * pCamera->settings.volumetric_environment_intensity * m_intensity * -slice_spacing / 1000.0f));
|
pFogShader->setUniform(KRPipeline::KRENGINE_UNIFORM_LIGHT_COLOR, (m_color * pCamera->settings.volumetric_environment_intensity * m_intensity * -slice_spacing / 1000.0f));
|
||||||
|
|
||||||
KRDataBlock index_data;
|
KRDataBlock index_data;
|
||||||
m_pContext->getMeshManager()->bindVBO(m_pContext->getMeshManager()->getVolumetricLightingVertexes(), index_data, (1 << KRMesh::KRENGINE_ATTRIB_VERTEX), true, 1.0f);
|
m_pContext->getMeshManager()->bindVBO(m_pContext->getMeshManager()->getVolumetricLightingVertexes(), index_data, (1 << KRMesh::KRENGINE_ATTRIB_VERTEX), true, 1.0f);
|
||||||
@@ -284,7 +284,7 @@ void KRLight::render(KRCamera *pCamera, std::vector<KRPointLight *> &point_light
|
|||||||
occlusion_test_sphere_matrix *= m_parentNode->getModelMatrix();
|
occlusion_test_sphere_matrix *= m_parentNode->getModelMatrix();
|
||||||
}
|
}
|
||||||
|
|
||||||
if(getContext().getShaderManager()->selectShader("occlusion_test", *pCamera, point_lights, directional_lights, spot_lights, 0, viewport, occlusion_test_sphere_matrix, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, renderPass, Vector3::Zero(), 0.0f, Vector4::Zero())) {
|
if(getContext().getPipelineManager()->selectPipeline("occlusion_test", *pCamera, point_lights, directional_lights, spot_lights, 0, viewport, occlusion_test_sphere_matrix, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, renderPass, Vector3::Zero(), 0.0f, Vector4::Zero())) {
|
||||||
|
|
||||||
GLDEBUG(glGenQueriesEXT(1, &m_occlusionQuery));
|
GLDEBUG(glGenQueriesEXT(1, &m_occlusionQuery));
|
||||||
#if TARGET_OS_IPHONE || defined(ANDROID)
|
#if TARGET_OS_IPHONE || defined(ANDROID)
|
||||||
@@ -330,11 +330,11 @@ void KRLight::render(KRCamera *pCamera, std::vector<KRPointLight *> &point_light
|
|||||||
GLDEBUG(glDepthRangef(0.0, 1.0));
|
GLDEBUG(glDepthRangef(0.0, 1.0));
|
||||||
|
|
||||||
// Render light flare on transparency pass
|
// Render light flare on transparency pass
|
||||||
KRShader *pShader = getContext().getShaderManager()->getShader("flare", pCamera, point_lights, directional_lights, spot_lights, 0, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, renderPass);
|
KRPipeline *pShader = getContext().getPipelineManager()->getPipeline("flare", pCamera, point_lights, directional_lights, spot_lights, 0, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, renderPass);
|
||||||
|
|
||||||
if(getContext().getShaderManager()->selectShader(*pCamera, pShader, viewport, getModelMatrix(), point_lights, directional_lights, spot_lights, 0, renderPass, Vector3::Zero(), 0.0f, Vector4::Zero())) {
|
if(getContext().getPipelineManager()->selectPipeline(*pCamera, pShader, viewport, getModelMatrix(), point_lights, directional_lights, spot_lights, 0, renderPass, Vector3::Zero(), 0.0f, Vector4::Zero())) {
|
||||||
pShader->setUniform(KRShader::KRENGINE_UNIFORM_MATERIAL_ALPHA, 1.0f);
|
pShader->setUniform(KRPipeline::KRENGINE_UNIFORM_MATERIAL_ALPHA, 1.0f);
|
||||||
pShader->setUniform(KRShader::KRENGINE_UNIFORM_FLARE_SIZE, m_flareSize);
|
pShader->setUniform(KRPipeline::KRENGINE_UNIFORM_FLARE_SIZE, m_flareSize);
|
||||||
m_pContext->getTextureManager()->selectTexture(0, m_pFlareTexture, 0.0f, KRTexture::TEXTURE_USAGE_LIGHT_FLARE);
|
m_pContext->getTextureManager()->selectTexture(0, m_pFlareTexture, 0.0f, KRTexture::TEXTURE_USAGE_LIGHT_FLARE);
|
||||||
m_pContext->getMeshManager()->bindVBO(&getContext().getMeshManager()->KRENGINE_VBO_DATA_2D_SQUARE_VERTICES, 1.0f);
|
m_pContext->getMeshManager()->bindVBO(&getContext().getMeshManager()->KRENGINE_VBO_DATA_2D_SQUARE_VERTICES, 1.0f);
|
||||||
GLDEBUG(glDrawArrays(GL_TRIANGLE_STRIP, 0, 4));
|
GLDEBUG(glDrawArrays(GL_TRIANGLE_STRIP, 0, 4));
|
||||||
@@ -447,9 +447,9 @@ void KRLight::renderShadowBuffers(KRCamera *pCamera)
|
|||||||
GLDEBUG(glDisable(GL_BLEND));
|
GLDEBUG(glDisable(GL_BLEND));
|
||||||
|
|
||||||
// Use shader program
|
// Use shader program
|
||||||
KRShader *shadowShader = m_pContext->getShaderManager()->getShader("ShadowShader", pCamera, std::vector<KRPointLight *>(), std::vector<KRDirectionalLight *>(), std::vector<KRSpotLight *>(), 0, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, KRNode::RENDER_PASS_FORWARD_TRANSPARENT);
|
KRPipeline *shadowShader = m_pContext->getPipelineManager()->getPipeline("ShadowShader", pCamera, std::vector<KRPointLight *>(), std::vector<KRDirectionalLight *>(), std::vector<KRSpotLight *>(), 0, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, KRNode::RENDER_PASS_FORWARD_TRANSPARENT);
|
||||||
|
|
||||||
getContext().getShaderManager()->selectShader(*pCamera, shadowShader, m_shadowViewports[iShadow], Matrix4(), std::vector<KRPointLight *>(), std::vector<KRDirectionalLight *>(), std::vector<KRSpotLight *>(), 0, KRNode::RENDER_PASS_SHADOWMAP, Vector3::Zero(), 0.0f, Vector4::Zero());
|
getContext().getPipelineManager()->selectPipeline(*pCamera, shadowShader, m_shadowViewports[iShadow], Matrix4(), std::vector<KRPointLight *>(), std::vector<KRDirectionalLight *>(), std::vector<KRSpotLight *>(), 0, KRNode::RENDER_PASS_SHADOWMAP, Vector3::Zero(), 0.0f, Vector4::Zero());
|
||||||
|
|
||||||
|
|
||||||
getScene().render(pCamera, m_shadowViewports[iShadow].getVisibleBounds(), m_shadowViewports[iShadow], KRNode::RENDER_PASS_SHADOWMAP, true);
|
getScene().render(pCamera, m_shadowViewports[iShadow].getVisibleBounds(), m_shadowViewports[iShadow], KRNode::RENDER_PASS_SHADOWMAP, true);
|
||||||
|
|||||||
@@ -319,16 +319,16 @@ bool KRMaterial::bind(KRCamera *pCamera, std::vector<KRPointLight *> &point_ligh
|
|||||||
bool bAlphaTest = (m_alpha_mode == KRMATERIAL_ALPHA_MODE_TEST) && bDiffuseMap;
|
bool bAlphaTest = (m_alpha_mode == KRMATERIAL_ALPHA_MODE_TEST) && bDiffuseMap;
|
||||||
bool bAlphaBlend = (m_alpha_mode == KRMATERIAL_ALPHA_MODE_BLENDONESIDE) || (m_alpha_mode == KRMATERIAL_ALPHA_MODE_BLENDTWOSIDE);
|
bool bAlphaBlend = (m_alpha_mode == KRMATERIAL_ALPHA_MODE_BLENDONESIDE) || (m_alpha_mode == KRMATERIAL_ALPHA_MODE_BLENDTWOSIDE);
|
||||||
|
|
||||||
KRShader *pShader = getContext().getShaderManager()->getShader("ObjectShader", pCamera, point_lights, directional_lights, spot_lights, (int)bones.size(), bDiffuseMap, bNormalMap, bSpecMap, bReflectionMap, bReflectionCubeMap, bLightMap, m_diffuseMapScale != default_scale && bDiffuseMap, m_specularMapScale != default_scale && bSpecMap, m_normalMapScale != default_scale && bNormalMap, m_reflectionMapScale != default_scale && bReflectionMap, m_diffuseMapOffset != default_offset && bDiffuseMap, m_specularMapOffset != default_offset && bSpecMap, m_normalMapOffset != default_offset && bNormalMap, m_reflectionMapOffset != default_offset && bReflectionMap, bAlphaTest, bAlphaBlend, renderPass, rim_power != 0.0f);
|
KRPipeline *pShader = getContext().getPipelineManager()->getPipeline("ObjectShader", pCamera, point_lights, directional_lights, spot_lights, (int)bones.size(), bDiffuseMap, bNormalMap, bSpecMap, bReflectionMap, bReflectionCubeMap, bLightMap, m_diffuseMapScale != default_scale && bDiffuseMap, m_specularMapScale != default_scale && bSpecMap, m_normalMapScale != default_scale && bNormalMap, m_reflectionMapScale != default_scale && bReflectionMap, m_diffuseMapOffset != default_offset && bDiffuseMap, m_specularMapOffset != default_offset && bSpecMap, m_normalMapOffset != default_offset && bNormalMap, m_reflectionMapOffset != default_offset && bReflectionMap, bAlphaTest, bAlphaBlend, renderPass, rim_power != 0.0f);
|
||||||
|
|
||||||
|
|
||||||
Vector4 fade_color;
|
Vector4 fade_color;
|
||||||
if(!getContext().getShaderManager()->selectShader(*pCamera, pShader, viewport, matModel, point_lights, directional_lights, spot_lights, 0, renderPass, rim_color, rim_power, fade_color)) {
|
if(!getContext().getPipelineManager()->selectPipeline(*pCamera, pShader, viewport, matModel, point_lights, directional_lights, spot_lights, 0, renderPass, rim_color, rim_power, fade_color)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Bind bones
|
// Bind bones
|
||||||
if(pShader->m_uniforms[KRShader::KRENGINE_UNIFORM_BONE_TRANSFORMS] != -1) {
|
if(pShader->m_uniforms[KRPipeline::KRENGINE_UNIFORM_BONE_TRANSFORMS] != -1) {
|
||||||
GLfloat bone_mats[256 * 16];
|
GLfloat bone_mats[256 * 16];
|
||||||
GLfloat *bone_mat_component = bone_mats;
|
GLfloat *bone_mat_component = bone_mats;
|
||||||
for(int bone_index=0; bone_index < bones.size(); bone_index++) {
|
for(int bone_index=0; bone_index < bones.size(); bone_index++) {
|
||||||
@@ -355,40 +355,40 @@ bool KRMaterial::bind(KRCamera *pCamera, std::vector<KRPointLight *> &point_ligh
|
|||||||
*bone_mat_component++ = t[i];
|
*bone_mat_component++ = t[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(pShader->m_uniforms[KRShader::KRENGINE_UNIFORM_BONE_TRANSFORMS] != -1) {
|
if(pShader->m_uniforms[KRPipeline::KRENGINE_UNIFORM_BONE_TRANSFORMS] != -1) {
|
||||||
glUniformMatrix4fv(pShader->m_uniforms[KRShader::KRENGINE_UNIFORM_BONE_TRANSFORMS], (GLsizei)bones.size(), GL_FALSE, bone_mats);
|
glUniformMatrix4fv(pShader->m_uniforms[KRPipeline::KRENGINE_UNIFORM_BONE_TRANSFORMS], (GLsizei)bones.size(), GL_FALSE, bone_mats);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
pShader->setUniform(KRShader::KRENGINE_UNIFORM_MATERIAL_AMBIENT, m_ambientColor + pCamera->settings.ambient_intensity);
|
pShader->setUniform(KRPipeline::KRENGINE_UNIFORM_MATERIAL_AMBIENT, m_ambientColor + pCamera->settings.ambient_intensity);
|
||||||
|
|
||||||
if(renderPass == KRNode::RENDER_PASS_FORWARD_OPAQUE) {
|
if(renderPass == KRNode::RENDER_PASS_FORWARD_OPAQUE) {
|
||||||
// We pre-multiply the light color with the material color in the forward renderer
|
// We pre-multiply the light color with the material color in the forward renderer
|
||||||
pShader->setUniform(KRShader::KRENGINE_UNIFORM_MATERIAL_DIFFUSE, Vector3::Create(m_diffuseColor.x * pCamera->settings.light_intensity.x, m_diffuseColor.y * pCamera->settings.light_intensity.y, m_diffuseColor.z * pCamera->settings.light_intensity.z));
|
pShader->setUniform(KRPipeline::KRENGINE_UNIFORM_MATERIAL_DIFFUSE, Vector3::Create(m_diffuseColor.x * pCamera->settings.light_intensity.x, m_diffuseColor.y * pCamera->settings.light_intensity.y, m_diffuseColor.z * pCamera->settings.light_intensity.z));
|
||||||
} else {
|
} else {
|
||||||
pShader->setUniform(KRShader::KRENGINE_UNIFORM_MATERIAL_DIFFUSE, m_diffuseColor);
|
pShader->setUniform(KRPipeline::KRENGINE_UNIFORM_MATERIAL_DIFFUSE, m_diffuseColor);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(renderPass == KRNode::RENDER_PASS_FORWARD_OPAQUE) {
|
if(renderPass == KRNode::RENDER_PASS_FORWARD_OPAQUE) {
|
||||||
// We pre-multiply the light color with the material color in the forward renderer
|
// We pre-multiply the light color with the material color in the forward renderer
|
||||||
pShader->setUniform(KRShader::KRENGINE_UNIFORM_MATERIAL_SPECULAR, Vector3::Create(m_specularColor.x * pCamera->settings.light_intensity.x, m_specularColor.y * pCamera->settings.light_intensity.y, m_specularColor.z * pCamera->settings.light_intensity.z));
|
pShader->setUniform(KRPipeline::KRENGINE_UNIFORM_MATERIAL_SPECULAR, Vector3::Create(m_specularColor.x * pCamera->settings.light_intensity.x, m_specularColor.y * pCamera->settings.light_intensity.y, m_specularColor.z * pCamera->settings.light_intensity.z));
|
||||||
} else {
|
} else {
|
||||||
pShader->setUniform(KRShader::KRENGINE_UNIFORM_MATERIAL_SPECULAR, m_specularColor);
|
pShader->setUniform(KRPipeline::KRENGINE_UNIFORM_MATERIAL_SPECULAR, m_specularColor);
|
||||||
}
|
}
|
||||||
|
|
||||||
pShader->setUniform(KRShader::KRENGINE_UNIFORM_MATERIAL_SHININESS, m_ns);
|
pShader->setUniform(KRPipeline::KRENGINE_UNIFORM_MATERIAL_SHININESS, m_ns);
|
||||||
pShader->setUniform(KRShader::KRENGINE_UNIFORM_MATERIAL_REFLECTION, m_reflectionColor);
|
pShader->setUniform(KRPipeline::KRENGINE_UNIFORM_MATERIAL_REFLECTION, m_reflectionColor);
|
||||||
pShader->setUniform(KRShader::KRENGINE_UNIFORM_DIFFUSETEXTURE_SCALE, m_diffuseMapScale);
|
pShader->setUniform(KRPipeline::KRENGINE_UNIFORM_DIFFUSETEXTURE_SCALE, m_diffuseMapScale);
|
||||||
pShader->setUniform(KRShader::KRENGINE_UNIFORM_SPECULARTEXTURE_SCALE, m_specularMapScale);
|
pShader->setUniform(KRPipeline::KRENGINE_UNIFORM_SPECULARTEXTURE_SCALE, m_specularMapScale);
|
||||||
pShader->setUniform(KRShader::KRENGINE_UNIFORM_REFLECTIONTEXTURE_SCALE, m_reflectionMapScale);
|
pShader->setUniform(KRPipeline::KRENGINE_UNIFORM_REFLECTIONTEXTURE_SCALE, m_reflectionMapScale);
|
||||||
pShader->setUniform(KRShader::KRENGINE_UNIFORM_NORMALTEXTURE_SCALE, m_normalMapScale);
|
pShader->setUniform(KRPipeline::KRENGINE_UNIFORM_NORMALTEXTURE_SCALE, m_normalMapScale);
|
||||||
pShader->setUniform(KRShader::KRENGINE_UNIFORM_DIFFUSETEXTURE_OFFSET, m_diffuseMapOffset);
|
pShader->setUniform(KRPipeline::KRENGINE_UNIFORM_DIFFUSETEXTURE_OFFSET, m_diffuseMapOffset);
|
||||||
pShader->setUniform(KRShader::KRENGINE_UNIFORM_SPECULARTEXTURE_OFFSET, m_specularMapOffset);
|
pShader->setUniform(KRPipeline::KRENGINE_UNIFORM_SPECULARTEXTURE_OFFSET, m_specularMapOffset);
|
||||||
pShader->setUniform(KRShader::KRENGINE_UNIFORM_REFLECTIONTEXTURE_OFFSET, m_reflectionMapOffset);
|
pShader->setUniform(KRPipeline::KRENGINE_UNIFORM_REFLECTIONTEXTURE_OFFSET, m_reflectionMapOffset);
|
||||||
pShader->setUniform(KRShader::KRENGINE_UNIFORM_NORMALTEXTURE_OFFSET, m_normalMapOffset);
|
pShader->setUniform(KRPipeline::KRENGINE_UNIFORM_NORMALTEXTURE_OFFSET, m_normalMapOffset);
|
||||||
|
|
||||||
pShader->setUniform(KRShader::KRENGINE_UNIFORM_MATERIAL_ALPHA, m_tr);
|
pShader->setUniform(KRPipeline::KRENGINE_UNIFORM_MATERIAL_ALPHA, m_tr);
|
||||||
|
|
||||||
if(bDiffuseMap) {
|
if(bDiffuseMap) {
|
||||||
m_pContext->getTextureManager()->selectTexture(0, m_pDiffuseMap, lod_coverage, KRTexture::TEXTURE_USAGE_DIFFUSE_MAP);
|
m_pContext->getTextureManager()->selectTexture(0, m_pDiffuseMap, lod_coverage, KRTexture::TEXTURE_USAGE_DIFFUSE_MAP);
|
||||||
|
|||||||
@@ -32,8 +32,8 @@
|
|||||||
#include "KREngine-common.h"
|
#include "KREngine-common.h"
|
||||||
|
|
||||||
#include "KRTexture.h"
|
#include "KRTexture.h"
|
||||||
#include "KRShaderManager.h"
|
#include "KRPipelineManager.h"
|
||||||
#include "KRShader.h"
|
#include "KRPipeline.h"
|
||||||
#include "KRCamera.h"
|
#include "KRCamera.h"
|
||||||
#include "KRResource.h"
|
#include "KRResource.h"
|
||||||
#include "KRScene.h"
|
#include "KRScene.h"
|
||||||
|
|||||||
@@ -33,10 +33,10 @@
|
|||||||
#include "KRMaterialManager.h"
|
#include "KRMaterialManager.h"
|
||||||
|
|
||||||
|
|
||||||
KRMaterialManager::KRMaterialManager(KRContext &context, KRTextureManager *pTextureManager, KRShaderManager *pShaderManager) : KRContextObject(context)
|
KRMaterialManager::KRMaterialManager(KRContext &context, KRTextureManager *pTextureManager, KRPipelineManager *pPipelineManager) : KRContextObject(context)
|
||||||
{
|
{
|
||||||
m_pTextureManager = pTextureManager;
|
m_pTextureManager = pTextureManager;
|
||||||
m_pShaderManager = pShaderManager;
|
m_pPipelineManager = pPipelineManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
KRMaterialManager::~KRMaterialManager() {
|
KRMaterialManager::~KRMaterialManager() {
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ using std::map;
|
|||||||
|
|
||||||
class KRMaterialManager : public KRContextObject {
|
class KRMaterialManager : public KRContextObject {
|
||||||
public:
|
public:
|
||||||
KRMaterialManager(KRContext &context, KRTextureManager *pTextureManager, KRShaderManager *pShaderManager);
|
KRMaterialManager(KRContext &context, KRTextureManager *pTextureManager, KRPipelineManager *pPipelineManager);
|
||||||
virtual ~KRMaterialManager();
|
virtual ~KRMaterialManager();
|
||||||
|
|
||||||
KRMaterial* load(const char *szName, KRDataBlock *data);
|
KRMaterial* load(const char *szName, KRDataBlock *data);
|
||||||
@@ -61,7 +61,7 @@ public:
|
|||||||
private:
|
private:
|
||||||
unordered_map<std::string, KRMaterial *> m_materials;
|
unordered_map<std::string, KRMaterial *> m_materials;
|
||||||
KRTextureManager *m_pTextureManager;
|
KRTextureManager *m_pTextureManager;
|
||||||
KRShaderManager *m_pShaderManager;
|
KRPipelineManager *m_pPipelineManager;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -34,8 +34,8 @@
|
|||||||
|
|
||||||
#include "KRMesh.h"
|
#include "KRMesh.h"
|
||||||
|
|
||||||
#include "KRShader.h"
|
#include "KRPipeline.h"
|
||||||
#include "KRShaderManager.h"
|
#include "KRPipelineManager.h"
|
||||||
#include "KRContext.h"
|
#include "KRContext.h"
|
||||||
#include "../3rdparty/forsyth/forsyth.h"
|
#include "../3rdparty/forsyth/forsyth.h"
|
||||||
|
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ class Matrix4;
|
|||||||
class AABB;
|
class AABB;
|
||||||
} // namespace kraken
|
} // namespace kraken
|
||||||
class KRCamera;
|
class KRCamera;
|
||||||
class KRShaderManager;
|
class KRPipelineManager;
|
||||||
class KRMeshManager;
|
class KRMeshManager;
|
||||||
class KRMaterialManager;
|
class KRMaterialManager;
|
||||||
class KRTextureManager;
|
class KRTextureManager;
|
||||||
|
|||||||
@@ -74,11 +74,11 @@ void KRParticleSystemNewtonian::render(KRCamera *pCamera, std::vector<KRPointLig
|
|||||||
|
|
||||||
int particle_count = 10000;
|
int particle_count = 10000;
|
||||||
|
|
||||||
KRShader *pParticleShader = m_pContext->getShaderManager()->getShader("dust_particle", pCamera, point_lights, directional_lights, spot_lights, 0, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, renderPass);
|
KRPipeline *pParticleShader = m_pContext->getPipelineManager()->getPipeline("dust_particle", pCamera, point_lights, directional_lights, spot_lights, 0, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, renderPass);
|
||||||
|
|
||||||
// Vector3 rim_color; Vector4 fade_color;
|
// Vector3 rim_color; Vector4 fade_color;
|
||||||
if(getContext().getShaderManager()->selectShader(*pCamera, pParticleShader, viewport, getModelMatrix(), point_lights, directional_lights, spot_lights, 0, renderPass, Vector3::Zero(), 0.0f, Vector4::Zero())) {
|
if(getContext().getPipelineManager()->selectPipeline(*pCamera, pParticleShader, viewport, getModelMatrix(), point_lights, directional_lights, spot_lights, 0, renderPass, Vector3::Zero(), 0.0f, Vector4::Zero())) {
|
||||||
pParticleShader->setUniform(KRShader::KRENGINE_UNIFORM_FLARE_SIZE, 1.0f);
|
pParticleShader->setUniform(KRPipeline::KRENGINE_UNIFORM_FLARE_SIZE, 1.0f);
|
||||||
|
|
||||||
KRDataBlock index_data;
|
KRDataBlock index_data;
|
||||||
m_pContext->getMeshManager()->bindVBO(m_pContext->getMeshManager()->getRandomParticles(), index_data, (1 << KRMesh::KRENGINE_ATTRIB_VERTEX) | (1 << KRMesh::KRENGINE_ATTRIB_TEXUVA), false, 1.0f);
|
m_pContext->getMeshManager()->bindVBO(m_pContext->getMeshManager()->getRandomParticles(), index_data, (1 << KRMesh::KRENGINE_ATTRIB_VERTEX) | (1 << KRMesh::KRENGINE_ATTRIB_TEXUVA), false, 1.0f);
|
||||||
|
|||||||
50
kraken/KRShader.cpp → kraken/KRPipeline.cpp
Executable file → Normal file
50
kraken/KRShader.cpp → kraken/KRPipeline.cpp
Executable file → Normal file
@@ -1,8 +1,8 @@
|
|||||||
//
|
//
|
||||||
// KRShader.cpp
|
// KRPipeline.cpp
|
||||||
// KREngine
|
// KREngine
|
||||||
//
|
//
|
||||||
// Copyright 2012 Kearwood Gilbert. All rights reserved.
|
// Copyright 2019 Kearwood Gilbert. All rights reserved.
|
||||||
//
|
//
|
||||||
// Redistribution and use in source and binary forms, with or without modification, are
|
// Redistribution and use in source and binary forms, with or without modification, are
|
||||||
// permitted provided that the following conditions are met:
|
// permitted provided that the following conditions are met:
|
||||||
@@ -29,7 +29,7 @@
|
|||||||
// or implied, of Kearwood Gilbert.
|
// or implied, of Kearwood Gilbert.
|
||||||
//
|
//
|
||||||
|
|
||||||
#include "KRShader.h"
|
#include "KRPipeline.h"
|
||||||
#include "assert.h"
|
#include "assert.h"
|
||||||
#include "KRLight.h"
|
#include "KRLight.h"
|
||||||
#include "KRDirectionalLight.h"
|
#include "KRDirectionalLight.h"
|
||||||
@@ -37,7 +37,7 @@
|
|||||||
#include "KRPointLight.h"
|
#include "KRPointLight.h"
|
||||||
|
|
||||||
|
|
||||||
const char *KRShader::KRENGINE_UNIFORM_NAMES[] = {
|
const char *KRPipeline::KRENGINE_UNIFORM_NAMES[] = {
|
||||||
"material_ambient", // KRENGINE_UNIFORM_MATERIAL_AMBIENT
|
"material_ambient", // KRENGINE_UNIFORM_MATERIAL_AMBIENT
|
||||||
"material_diffuse", // KRENGINE_UNIFORM_MATERIAL_DIFFUSE
|
"material_diffuse", // KRENGINE_UNIFORM_MATERIAL_DIFFUSE
|
||||||
"material_specular", // KRENGINE_UNIFORM_MATERIAL_SPECULAR
|
"material_specular", // KRENGINE_UNIFORM_MATERIAL_SPECULAR
|
||||||
@@ -108,7 +108,7 @@ const char *KRShader::KRENGINE_UNIFORM_NAMES[] = {
|
|||||||
"fade_color", // KRENGINE_UNIFORM_FADE_COLOR
|
"fade_color", // KRENGINE_UNIFORM_FADE_COLOR
|
||||||
};
|
};
|
||||||
|
|
||||||
KRShader::KRShader(KRContext &context, char *szKey, std::string options, std::string vertShaderSource, const std::string fragShaderSource) : KRContextObject(context)
|
KRPipeline::KRPipeline(KRContext &context, char *szKey, std::string options, std::string vertShaderSource, const std::string fragShaderSource) : KRContextObject(context)
|
||||||
{
|
{
|
||||||
strcpy(m_szKey, szKey);
|
strcpy(m_szKey, szKey);
|
||||||
m_iProgram = 0;
|
m_iProgram = 0;
|
||||||
@@ -216,16 +216,16 @@ KRShader::KRShader(KRContext &context, char *szKey, std::string options, std::st
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
KRShader::~KRShader() {
|
KRPipeline::~KRPipeline() {
|
||||||
if(m_iProgram) {
|
if(m_iProgram) {
|
||||||
GLDEBUG(glDeleteProgram(m_iProgram));
|
GLDEBUG(glDeleteProgram(m_iProgram));
|
||||||
if(getContext().getShaderManager()->m_active_shader == this) {
|
if(getContext().getPipelineManager()->m_active_pipeline == this) {
|
||||||
getContext().getShaderManager()->m_active_shader = NULL;
|
getContext().getPipelineManager()->m_active_pipeline = NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void KRShader::setUniform(int location, float value)
|
void KRPipeline::setUniform(int location, float value)
|
||||||
{
|
{
|
||||||
if(m_uniforms[location] != -1) {
|
if(m_uniforms[location] != -1) {
|
||||||
int value_index = m_uniform_value_index[location];
|
int value_index = m_uniform_value_index[location];
|
||||||
@@ -243,7 +243,7 @@ void KRShader::setUniform(int location, float value)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
void KRShader::setUniform(int location, int value)
|
void KRPipeline::setUniform(int location, int value)
|
||||||
{
|
{
|
||||||
if(m_uniforms[location] != -1) {
|
if(m_uniforms[location] != -1) {
|
||||||
int value_index = m_uniform_value_index[location];
|
int value_index = m_uniform_value_index[location];
|
||||||
@@ -262,7 +262,7 @@ void KRShader::setUniform(int location, int value)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void KRShader::setUniform(int location, const Vector2 &value)
|
void KRPipeline::setUniform(int location, const Vector2 &value)
|
||||||
{
|
{
|
||||||
if(m_uniforms[location] != -1) {
|
if(m_uniforms[location] != -1) {
|
||||||
int value_index = m_uniform_value_index[location];
|
int value_index = m_uniform_value_index[location];
|
||||||
@@ -280,7 +280,7 @@ void KRShader::setUniform(int location, const Vector2 &value)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
void KRShader::setUniform(int location, const Vector3 &value)
|
void KRPipeline::setUniform(int location, const Vector3 &value)
|
||||||
{
|
{
|
||||||
if(m_uniforms[location] != -1) {
|
if(m_uniforms[location] != -1) {
|
||||||
int value_index = m_uniform_value_index[location];
|
int value_index = m_uniform_value_index[location];
|
||||||
@@ -298,7 +298,7 @@ void KRShader::setUniform(int location, const Vector3 &value)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
void KRShader::setUniform(int location, const Vector4 &value)
|
void KRPipeline::setUniform(int location, const Vector4 &value)
|
||||||
{
|
{
|
||||||
if(m_uniforms[location] != -1) {
|
if(m_uniforms[location] != -1) {
|
||||||
int value_index = m_uniform_value_index[location];
|
int value_index = m_uniform_value_index[location];
|
||||||
@@ -317,7 +317,7 @@ void KRShader::setUniform(int location, const Vector4 &value)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void KRShader::setUniform(int location, const Matrix4 &value)
|
void KRPipeline::setUniform(int location, const Matrix4 &value)
|
||||||
{
|
{
|
||||||
if(m_uniforms[location] != -1) {
|
if(m_uniforms[location] != -1) {
|
||||||
int value_index = m_uniform_value_index[location];
|
int value_index = m_uniform_value_index[location];
|
||||||
@@ -336,14 +336,14 @@ void KRShader::setUniform(int location, const Matrix4 &value)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool KRShader::bind(KRCamera &camera, const KRViewport &viewport, const Matrix4 &matModel, const std::vector<KRPointLight *> &point_lights, const std::vector<KRDirectionalLight *> &directional_lights, const std::vector<KRSpotLight *>&spot_lights, const KRNode::RenderPass &renderPass, const Vector3 &rim_color, float rim_power, const Vector4 &fade_color) {
|
bool KRPipeline::bind(KRCamera &camera, const KRViewport &viewport, const Matrix4 &matModel, const std::vector<KRPointLight *> &point_lights, const std::vector<KRDirectionalLight *> &directional_lights, const std::vector<KRSpotLight *>&spot_lights, const KRNode::RenderPass &renderPass, const Vector3 &rim_color, float rim_power, const Vector4 &fade_color) {
|
||||||
if(m_iProgram == 0) {
|
if(m_iProgram == 0) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool shander_changed = false;
|
bool shander_changed = false;
|
||||||
if(getContext().getShaderManager()->m_active_shader != this) {
|
if(getContext().getPipelineManager()->m_active_pipeline != this) {
|
||||||
getContext().getShaderManager()->m_active_shader = this;
|
getContext().getPipelineManager()->m_active_pipeline = this;
|
||||||
GLDEBUG(glUseProgram(m_iProgram));
|
GLDEBUG(glUseProgram(m_iProgram));
|
||||||
shander_changed = true;
|
shander_changed = true;
|
||||||
}
|
}
|
||||||
@@ -428,22 +428,22 @@ bool KRShader::bind(KRCamera &camera, const KRViewport &viewport, const Matrix4
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(m_uniforms[KRENGINE_UNIFORM_MVP] != -1 || m_uniforms[KRShader::KRENGINE_UNIFORM_INVMVP] != -1) {
|
if(m_uniforms[KRENGINE_UNIFORM_MVP] != -1 || m_uniforms[KRPipeline::KRENGINE_UNIFORM_INVMVP] != -1) {
|
||||||
// Bind our modelmatrix variable to be a uniform called mvpmatrix in our shaderprogram
|
// Bind our modelmatrix variable to be a uniform called mvpmatrix in our shaderprogram
|
||||||
Matrix4 mvpMatrix = matModel * viewport.getViewProjectionMatrix();
|
Matrix4 mvpMatrix = matModel * viewport.getViewProjectionMatrix();
|
||||||
setUniform(KRENGINE_UNIFORM_MVP, mvpMatrix);
|
setUniform(KRENGINE_UNIFORM_MVP, mvpMatrix);
|
||||||
|
|
||||||
if(m_uniforms[KRShader::KRENGINE_UNIFORM_INVMVP] != -1) {
|
if(m_uniforms[KRPipeline::KRENGINE_UNIFORM_INVMVP] != -1) {
|
||||||
setUniform(KRShader::KRENGINE_UNIFORM_INVMVP, Matrix4::Invert(mvpMatrix));
|
setUniform(KRPipeline::KRENGINE_UNIFORM_INVMVP, Matrix4::Invert(mvpMatrix));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(m_uniforms[KRShader::KRENGINE_UNIFORM_VIEW_SPACE_MODEL_ORIGIN] != -1 || m_uniforms[KRENGINE_UNIFORM_MODEL_VIEW_INVERSE_TRANSPOSE] != -1 || m_uniforms[KRShader::KRENGINE_UNIFORM_MODEL_VIEW] != -1) {
|
if(m_uniforms[KRPipeline::KRENGINE_UNIFORM_VIEW_SPACE_MODEL_ORIGIN] != -1 || m_uniforms[KRENGINE_UNIFORM_MODEL_VIEW_INVERSE_TRANSPOSE] != -1 || m_uniforms[KRPipeline::KRENGINE_UNIFORM_MODEL_VIEW] != -1) {
|
||||||
Matrix4 matModelView = matModel * viewport.getViewMatrix();
|
Matrix4 matModelView = matModel * viewport.getViewMatrix();
|
||||||
setUniform(KRENGINE_UNIFORM_MODEL_VIEW, matModelView);
|
setUniform(KRENGINE_UNIFORM_MODEL_VIEW, matModelView);
|
||||||
|
|
||||||
|
|
||||||
if(m_uniforms[KRShader::KRENGINE_UNIFORM_VIEW_SPACE_MODEL_ORIGIN] != -1) {
|
if(m_uniforms[KRPipeline::KRENGINE_UNIFORM_VIEW_SPACE_MODEL_ORIGIN] != -1) {
|
||||||
Vector3 view_space_model_origin = Matrix4::Dot(matModelView, Vector3::Zero()); // Origin point of model space is the light source position. No perspective, so no w divide required
|
Vector3 view_space_model_origin = Matrix4::Dot(matModelView, Vector3::Zero()); // Origin point of model space is the light source position. No perspective, so no w divide required
|
||||||
setUniform(KRENGINE_UNIFORM_VIEW_SPACE_MODEL_ORIGIN, view_space_model_origin);
|
setUniform(KRENGINE_UNIFORM_VIEW_SPACE_MODEL_ORIGIN, view_space_model_origin);
|
||||||
}
|
}
|
||||||
@@ -463,11 +463,11 @@ bool KRShader::bind(KRCamera &camera, const KRViewport &viewport, const Matrix4
|
|||||||
setUniform(KRENGINE_UNIFORM_MODEL_INVERSE_TRANSPOSE, matModelInverseTranspose);
|
setUniform(KRENGINE_UNIFORM_MODEL_INVERSE_TRANSPOSE, matModelInverseTranspose);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(m_uniforms[KRShader::KRENGINE_UNIFORM_INVP] != -1) {
|
if(m_uniforms[KRPipeline::KRENGINE_UNIFORM_INVP] != -1) {
|
||||||
setUniform(KRENGINE_UNIFORM_INVP, viewport.getInverseProjectionMatrix());
|
setUniform(KRENGINE_UNIFORM_INVP, viewport.getInverseProjectionMatrix());
|
||||||
}
|
}
|
||||||
|
|
||||||
if(m_uniforms[KRShader::KRENGINE_UNIFORM_INVMVP_NO_TRANSLATE] != -1) {
|
if(m_uniforms[KRPipeline::KRENGINE_UNIFORM_INVMVP_NO_TRANSLATE] != -1) {
|
||||||
Matrix4 matInvMVPNoTranslate = matModel * viewport.getViewMatrix();;
|
Matrix4 matInvMVPNoTranslate = matModel * viewport.getViewMatrix();;
|
||||||
// Remove the translation
|
// Remove the translation
|
||||||
matInvMVPNoTranslate.getPointer()[3] = 0;
|
matInvMVPNoTranslate.getPointer()[3] = 0;
|
||||||
@@ -576,6 +576,6 @@ bool KRShader::bind(KRCamera &camera, const KRViewport &viewport, const Matrix4
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *KRShader::getKey() const {
|
const char *KRPipeline::getKey() const {
|
||||||
return m_szKey;
|
return m_szKey;
|
||||||
}
|
}
|
||||||
16
kraken/KRShader.h → kraken/KRPipeline.h
Executable file → Normal file
16
kraken/KRShader.h → kraken/KRPipeline.h
Executable file → Normal file
@@ -1,8 +1,8 @@
|
|||||||
//
|
//
|
||||||
// KRShader.h
|
// KRPipeline.h
|
||||||
// KREngine
|
// KREngine
|
||||||
//
|
//
|
||||||
// Copyright 2012 Kearwood Gilbert. All rights reserved.
|
// Copyright 2019 Kearwood Gilbert. All rights reserved.
|
||||||
//
|
//
|
||||||
// Redistribution and use in source and binary forms, with or without modification, are
|
// Redistribution and use in source and binary forms, with or without modification, are
|
||||||
// permitted provided that the following conditions are met:
|
// permitted provided that the following conditions are met:
|
||||||
@@ -31,19 +31,19 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef KRSHADER_H
|
#ifndef KRPIPELINE_H
|
||||||
#define KRSHADER_H
|
#define KRPIPELINE_H
|
||||||
|
|
||||||
#include "KREngine-common.h"
|
#include "KREngine-common.h"
|
||||||
#include "KRShader.h"
|
#include "KRPipeline.h"
|
||||||
#include "KRCamera.h"
|
#include "KRCamera.h"
|
||||||
#include "KRNode.h"
|
#include "KRNode.h"
|
||||||
#include "KRViewport.h"
|
#include "KRViewport.h"
|
||||||
|
|
||||||
class KRShader : public KRContextObject {
|
class KRPipeline : public KRContextObject {
|
||||||
public:
|
public:
|
||||||
KRShader(KRContext &context, char *szKey, std::string options, std::string vertShaderSource, const std::string fragShaderSource);
|
KRPipeline(KRContext &context, char *szKey, std::string options, std::string vertShaderSource, const std::string fragShaderSource);
|
||||||
virtual ~KRShader();
|
virtual ~KRPipeline();
|
||||||
const char *getKey() const;
|
const char *getKey() const;
|
||||||
|
|
||||||
bool bind(KRCamera &camera, const KRViewport &viewport, const Matrix4 &matModel, const std::vector<KRPointLight *> &point_lights, const std::vector<KRDirectionalLight *> &directional_lights, const std::vector<KRSpotLight *>&spot_lights, const KRNode::RenderPass &renderPass, const Vector3 &rim_color, float rim_power, const Vector4 &fade_color);
|
bool bind(KRCamera &camera, const KRViewport &viewport, const Matrix4 &matModel, const std::vector<KRPointLight *> &point_lights, const std::vector<KRDirectionalLight *> &directional_lights, const std::vector<KRSpotLight *>&spot_lights, const KRNode::RenderPass &renderPass, const Vector3 &rim_color, float rim_power, const Vector4 &fade_color);
|
||||||
89
kraken/KRShaderManager.cpp → kraken/KRPipelineManager.cpp
Executable file → Normal file
89
kraken/KRShaderManager.cpp → kraken/KRPipelineManager.cpp
Executable file → Normal file
@@ -1,8 +1,8 @@
|
|||||||
//
|
//
|
||||||
// KRShaderManager.cpp
|
// KRPipelineManager.cpp
|
||||||
// KREngine
|
// KREngine
|
||||||
//
|
//
|
||||||
// Copyright 2012 Kearwood Gilbert. All rights reserved.
|
// Copyright 2019 Kearwood Gilbert. All rights reserved.
|
||||||
//
|
//
|
||||||
// Redistribution and use in source and binary forms, with or without modification, are
|
// Redistribution and use in source and binary forms, with or without modification, are
|
||||||
// permitted provided that the following conditions are met:
|
// permitted provided that the following conditions are met:
|
||||||
@@ -31,28 +31,43 @@
|
|||||||
|
|
||||||
#include "KREngine-common.h"
|
#include "KREngine-common.h"
|
||||||
|
|
||||||
#include "KRShaderManager.h"
|
#include "KRPipelineManager.h"
|
||||||
#include "KRLight.h"
|
#include "KRLight.h"
|
||||||
#include "KRDirectionalLight.h"
|
#include "KRDirectionalLight.h"
|
||||||
#include "KRSpotLight.h"
|
#include "KRSpotLight.h"
|
||||||
#include "KRPointLight.h"
|
#include "KRPointLight.h"
|
||||||
|
|
||||||
|
#ifndef ANDROID
|
||||||
|
#include "glslang/Public/ShaderLang.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
KRShaderManager::KRShaderManager(KRContext &context) : KRContextObject(context) {
|
KRPipelineManager::KRPipelineManager(KRContext &context) : KRContextObject(context) {
|
||||||
m_active_shader = NULL;
|
m_active_pipeline = NULL;
|
||||||
|
#ifndef ANDROID
|
||||||
|
bool success = glslang::InitializeProcess();
|
||||||
|
if (success) {
|
||||||
|
printf("GLSLang Initialized.\n");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
printf("Failed to initialize GLSLang.\n");
|
||||||
|
}
|
||||||
|
#endif // ANDROID
|
||||||
}
|
}
|
||||||
|
|
||||||
KRShaderManager::~KRShaderManager() {
|
KRPipelineManager::~KRPipelineManager() {
|
||||||
|
#ifndef ANDROID
|
||||||
|
glslang::FinalizeProcess();
|
||||||
|
#endif // ANDROID
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
KRShader *KRShaderManager::getShader(const std::string &shader_name, KRCamera *pCamera, const std::vector<KRPointLight *> &point_lights, const std::vector<KRDirectionalLight *> &directional_lights, const std::vector<KRSpotLight *>&spot_lights, int bone_count, bool bDiffuseMap, bool bNormalMap, bool bSpecMap, bool bReflectionMap, bool bReflectionCubeMap, bool bLightMap, bool bDiffuseMapScale,bool bSpecMapScale, bool bNormalMapScale, bool bReflectionMapScale, bool bDiffuseMapOffset, bool bSpecMapOffset, bool bNormalMapOffset, bool bReflectionMapOffset, bool bAlphaTest, bool bAlphaBlend, KRNode::RenderPass renderPass, bool bRimColor) {
|
KRPipeline *KRPipelineManager::getPipeline(const std::string &pipeline_name, KRCamera *pCamera, const std::vector<KRPointLight *> &point_lights, const std::vector<KRDirectionalLight *> &directional_lights, const std::vector<KRSpotLight *>&spot_lights, int bone_count, bool bDiffuseMap, bool bNormalMap, bool bSpecMap, bool bReflectionMap, bool bReflectionCubeMap, bool bLightMap, bool bDiffuseMapScale,bool bSpecMapScale, bool bNormalMapScale, bool bReflectionMapScale, bool bDiffuseMapOffset, bool bSpecMapOffset, bool bNormalMapOffset, bool bReflectionMapOffset, bool bAlphaTest, bool bAlphaBlend, KRNode::RenderPass renderPass, bool bRimColor) {
|
||||||
|
|
||||||
int iShadowQuality = 0; // FINDME - HACK - Placeholder code, need to iterate through lights and dynamically build shader
|
int iShadowQuality = 0; // FINDME - HACK - Placeholder code, need to iterate through lights and dynamically build shader
|
||||||
|
|
||||||
|
|
||||||
int light_directional_count = 0;
|
int light_directional_count = 0;
|
||||||
int light_point_count = 0;
|
int light_point_count = 0;
|
||||||
int light_spot_count = 0;
|
int light_spot_count = 0;
|
||||||
@@ -73,7 +88,7 @@ KRShader *KRShaderManager::getShader(const std::string &shader_name, KRCamera *p
|
|||||||
bool bFadeColorEnabled = pCamera->getFadeColor().w >= 0.0f;
|
bool bFadeColorEnabled = pCamera->getFadeColor().w >= 0.0f;
|
||||||
|
|
||||||
std::pair<std::string, std::vector<int> > key;
|
std::pair<std::string, std::vector<int> > key;
|
||||||
key.first = shader_name;
|
key.first = pipeline_name;
|
||||||
key.second.push_back(light_directional_count);
|
key.second.push_back(light_directional_count);
|
||||||
key.second.push_back(light_point_count);
|
key.second.push_back(light_point_count);
|
||||||
key.second.push_back(light_spot_count);
|
key.second.push_back(light_spot_count);
|
||||||
@@ -120,26 +135,18 @@ KRShader *KRShaderManager::getShader(const std::string &shader_name, KRCamera *p
|
|||||||
key.second.push_back(bFadeColorEnabled);
|
key.second.push_back(bFadeColorEnabled);
|
||||||
|
|
||||||
|
|
||||||
KRShader *pShader = m_shaders[key];
|
KRPipeline *pPipeline = m_pipelines[key];
|
||||||
|
|
||||||
|
|
||||||
if(pShader == NULL) {
|
if(pPipeline == NULL) {
|
||||||
if(m_shaders.size() > KRContext::KRENGINE_MAX_SHADER_HANDLES) {
|
if(m_pipelines.size() > KRContext::KRENGINE_MAX_PIPELINE_HANDLES) {
|
||||||
// Keep the size of the shader cache reasonable
|
// Keep the size of the pipeline cache reasonable
|
||||||
std::map<std::pair<std::string, std::vector<int> > , KRShader *>::iterator itr = m_shaders.begin();
|
std::map<std::pair<std::string, std::vector<int> > , KRPipeline *>::iterator itr = m_pipelines.begin();
|
||||||
delete (*itr).second;
|
delete (*itr).second;
|
||||||
m_shaders.erase(itr);
|
m_pipelines.erase(itr);
|
||||||
KRContext::Log(KRContext::LOG_LEVEL_INFORMATION, "Swapping shaders...\n");
|
KRContext::Log(KRContext::LOG_LEVEL_INFORMATION, "Swapping pipelines...\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
std::string platform_shader_name = shader_name;
|
|
||||||
#if TARGET_OS_IPHONE
|
|
||||||
platform_shader_name = shader_name;
|
|
||||||
#else
|
|
||||||
platform_shader_name = shader_name + "_osx";
|
|
||||||
#endif
|
|
||||||
|
|
||||||
stringstream stream;
|
stringstream stream;
|
||||||
stream.precision(std::numeric_limits<long double>::digits10);
|
stream.precision(std::numeric_limits<long double>::digits10);
|
||||||
|
|
||||||
@@ -224,43 +231,43 @@ KRShader *KRShaderManager::getShader(const std::string &shader_name, KRCamera *p
|
|||||||
std::string options = stream.str();
|
std::string options = stream.str();
|
||||||
|
|
||||||
KRSourceManager *sourceManager = m_pContext->getSourceManager();
|
KRSourceManager *sourceManager = m_pContext->getSourceManager();
|
||||||
KRSource *vertSource = sourceManager->get(platform_shader_name.c_str(), "vsh");
|
KRSource *vertSource = sourceManager->get(pipeline_name.c_str(), "vert");
|
||||||
KRSource *fragSource = sourceManager->get(platform_shader_name.c_str(), "fsh");
|
KRSource *fragSource = sourceManager->get(pipeline_name.c_str(), "frag");
|
||||||
|
|
||||||
if(vertSource == nullptr) {
|
if(vertSource == nullptr) {
|
||||||
KRContext::Log(KRContext::LOG_LEVEL_ERROR, "Vertex Shader Missing: %s", platform_shader_name.c_str());
|
KRContext::Log(KRContext::LOG_LEVEL_ERROR, "Vertex Shader Missing: %s", pipeline_name.c_str());
|
||||||
}
|
}
|
||||||
if(fragSource == nullptr) {
|
if(fragSource == nullptr) {
|
||||||
KRContext::Log(KRContext::LOG_LEVEL_ERROR, "Fragment Shader Missing: %s", platform_shader_name.c_str());
|
KRContext::Log(KRContext::LOG_LEVEL_ERROR, "Fragment Shader Missing: %s", pipeline_name.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
Vector4 fade_color = pCamera->getFadeColor();
|
Vector4 fade_color = pCamera->getFadeColor();
|
||||||
|
|
||||||
char szKey[256];
|
char szKey[256];
|
||||||
sprintf(szKey, "%i_%i_%i_%i_%i_%d_%d_%d_%d_%d_%d_%d_%d_%d_%d_%d_%d_%d_%d_%d_%d_%d_%d_%d_%d_%d_%d_%d_%i_%s_%i_%d_%d_%f_%f_%f_%f_%f_%f_%f_%f_%f_%f_%f", light_directional_count, light_point_count, light_spot_count, bone_count, pCamera->settings.fog_type, pCamera->settings.bEnablePerPixel,bAlphaTest, bAlphaBlend, bDiffuseMap, bNormalMap, bSpecMap, bReflectionMap, bReflectionCubeMap, pCamera->settings.bDebugPSSM, iShadowQuality, pCamera->settings.bEnableAmbient, pCamera->settings.bEnableDiffuse, pCamera->settings.bEnableSpecular, bLightMap, bDiffuseMapScale, bSpecMapScale, bReflectionMapScale, bNormalMapScale, bDiffuseMapOffset, bSpecMapOffset, bReflectionMapOffset, bNormalMapOffset,pCamera->settings.volumetric_environment_enable && pCamera->settings.volumetric_environment_downsample != 0, renderPass, shader_name.c_str(),pCamera->settings.dof_quality,pCamera->settings.bEnableFlash,pCamera->settings.bEnableVignette,pCamera->settings.dof_depth,pCamera->settings.dof_falloff,pCamera->settings.flash_depth,pCamera->settings.flash_falloff,pCamera->settings.flash_intensity,pCamera->settings.vignette_radius,pCamera->settings.vignette_falloff, fade_color.x, fade_color.y, fade_color.z, fade_color.w);
|
sprintf(szKey, "%i_%i_%i_%i_%i_%d_%d_%d_%d_%d_%d_%d_%d_%d_%d_%d_%d_%d_%d_%d_%d_%d_%d_%d_%d_%d_%d_%d_%i_%s_%i_%d_%d_%f_%f_%f_%f_%f_%f_%f_%f_%f_%f_%f", light_directional_count, light_point_count, light_spot_count, bone_count, pCamera->settings.fog_type, pCamera->settings.bEnablePerPixel,bAlphaTest, bAlphaBlend, bDiffuseMap, bNormalMap, bSpecMap, bReflectionMap, bReflectionCubeMap, pCamera->settings.bDebugPSSM, iShadowQuality, pCamera->settings.bEnableAmbient, pCamera->settings.bEnableDiffuse, pCamera->settings.bEnableSpecular, bLightMap, bDiffuseMapScale, bSpecMapScale, bReflectionMapScale, bNormalMapScale, bDiffuseMapOffset, bSpecMapOffset, bReflectionMapOffset, bNormalMapOffset,pCamera->settings.volumetric_environment_enable && pCamera->settings.volumetric_environment_downsample != 0, renderPass, pipeline_name.c_str(),pCamera->settings.dof_quality,pCamera->settings.bEnableFlash,pCamera->settings.bEnableVignette,pCamera->settings.dof_depth,pCamera->settings.dof_falloff,pCamera->settings.flash_depth,pCamera->settings.flash_falloff,pCamera->settings.flash_intensity,pCamera->settings.vignette_radius,pCamera->settings.vignette_falloff, fade_color.x, fade_color.y, fade_color.z, fade_color.w);
|
||||||
|
|
||||||
pShader = new KRShader(getContext(), szKey, options, vertSource->getData()->getString(), fragSource->getData()->getString());
|
pPipeline = new KRPipeline(getContext(), szKey, options, vertSource->getData()->getString(), fragSource->getData()->getString());
|
||||||
|
|
||||||
m_shaders[key] = pShader;
|
m_pipelines[key] = pPipeline;
|
||||||
}
|
}
|
||||||
return pShader;
|
return pPipeline;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool KRShaderManager::selectShader(const std::string &shader_name, KRCamera &camera, const std::vector<KRPointLight *> &point_lights, const std::vector<KRDirectionalLight *> &directional_lights, const std::vector<KRSpotLight *>&spot_lights, int bone_count, const KRViewport &viewport, const Matrix4 &matModel, bool bDiffuseMap, bool bNormalMap, bool bSpecMap, bool bReflectionMap, bool bReflectionCubeMap, bool bLightMap, bool bDiffuseMapScale,bool bSpecMapScale, bool bNormalMapScale, bool bReflectionMapScale, bool bDiffuseMapOffset, bool bSpecMapOffset, bool bNormalMapOffset, bool bReflectionMapOffset, bool bAlphaTest, bool bAlphaBlend, KRNode::RenderPass renderPass, const Vector3 &rim_color, float rim_power, const Vector4 &fade_color)
|
bool KRPipelineManager::selectPipeline(const std::string &pipeline_name, KRCamera &camera, const std::vector<KRPointLight *> &point_lights, const std::vector<KRDirectionalLight *> &directional_lights, const std::vector<KRSpotLight *>&spot_lights, int bone_count, const KRViewport &viewport, const Matrix4 &matModel, bool bDiffuseMap, bool bNormalMap, bool bSpecMap, bool bReflectionMap, bool bReflectionCubeMap, bool bLightMap, bool bDiffuseMapScale,bool bSpecMapScale, bool bNormalMapScale, bool bReflectionMapScale, bool bDiffuseMapOffset, bool bSpecMapOffset, bool bNormalMapOffset, bool bReflectionMapOffset, bool bAlphaTest, bool bAlphaBlend, KRNode::RenderPass renderPass, const Vector3 &rim_color, float rim_power, const Vector4 &fade_color)
|
||||||
{
|
{
|
||||||
KRShader *pShader = getShader(shader_name, &camera, point_lights, directional_lights, spot_lights, bone_count, bDiffuseMap, bNormalMap, bSpecMap, bReflectionMap, bReflectionCubeMap, bLightMap, bDiffuseMapScale, bSpecMapScale, bNormalMapScale, bReflectionMapScale, bDiffuseMapOffset, bSpecMapOffset, bNormalMapOffset, bReflectionMapOffset, bAlphaTest, bAlphaBlend, renderPass, rim_power != 0.0f);
|
KRPipeline *pPipeline = getPipeline(pipeline_name, &camera, point_lights, directional_lights, spot_lights, bone_count, bDiffuseMap, bNormalMap, bSpecMap, bReflectionMap, bReflectionCubeMap, bLightMap, bDiffuseMapScale, bSpecMapScale, bNormalMapScale, bReflectionMapScale, bDiffuseMapOffset, bSpecMapOffset, bNormalMapOffset, bReflectionMapOffset, bAlphaTest, bAlphaBlend, renderPass, rim_power != 0.0f);
|
||||||
return selectShader(camera, pShader, viewport, matModel, point_lights, directional_lights, spot_lights, bone_count, renderPass, rim_color, rim_power, fade_color);
|
return selectPipeline(camera, pPipeline, viewport, matModel, point_lights, directional_lights, spot_lights, bone_count, renderPass, rim_color, rim_power, fade_color);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool KRShaderManager::selectShader(KRCamera &camera, KRShader *pShader, const KRViewport &viewport, const Matrix4 &matModel, const std::vector<KRPointLight *> &point_lights, const std::vector<KRDirectionalLight *> &directional_lights, const std::vector<KRSpotLight *>&spot_lights, int bone_count, const KRNode::RenderPass &renderPass, const Vector3 &rim_color, float rim_power, const Vector4 &fade_color)
|
bool KRPipelineManager::selectPipeline(KRCamera &camera, KRPipeline *pPipeline, const KRViewport &viewport, const Matrix4 &matModel, const std::vector<KRPointLight *> &point_lights, const std::vector<KRDirectionalLight *> &directional_lights, const std::vector<KRSpotLight *>&spot_lights, int bone_count, const KRNode::RenderPass &renderPass, const Vector3 &rim_color, float rim_power, const Vector4 &fade_color)
|
||||||
{
|
{
|
||||||
if(pShader) {
|
if(pPipeline) {
|
||||||
return pShader->bind(camera, viewport, matModel, point_lights, directional_lights, spot_lights, renderPass, rim_color, rim_power, fade_color);
|
return pPipeline->bind(camera, viewport, matModel, point_lights, directional_lights, spot_lights, renderPass, rim_color, rim_power, fade_color);
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t KRShaderManager::getShaderHandlesUsed() {
|
size_t KRPipelineManager::getPipelineHandlesUsed() {
|
||||||
return m_shaders.size();
|
return m_pipelines.size();
|
||||||
}
|
}
|
||||||
69
kraken/KRPipelineManager.h
Normal file
69
kraken/KRPipelineManager.h
Normal file
@@ -0,0 +1,69 @@
|
|||||||
|
//
|
||||||
|
// KRPipelineManager.h
|
||||||
|
// KREngine
|
||||||
|
//
|
||||||
|
// Copyright 2019 Kearwood Gilbert. All rights reserved.
|
||||||
|
//
|
||||||
|
// Redistribution and use in source and binary forms, with or without modification, are
|
||||||
|
// permitted provided that the following conditions are met:
|
||||||
|
//
|
||||||
|
// 1. Redistributions of source code must retain the above copyright notice, this list of
|
||||||
|
// conditions and the following disclaimer.
|
||||||
|
//
|
||||||
|
// 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
||||||
|
// of conditions and the following disclaimer in the documentation and/or other materials
|
||||||
|
// provided with the distribution.
|
||||||
|
//
|
||||||
|
// THIS SOFTWARE IS PROVIDED BY KEARWOOD GILBERT ''AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||||
|
// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL KEARWOOD GILBERT OR
|
||||||
|
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||||
|
// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||||
|
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||||
|
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
|
// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
//
|
||||||
|
// The views and conclusions contained in the software and documentation are those of the
|
||||||
|
// authors and should not be interpreted as representing official policies, either expressed
|
||||||
|
// or implied, of Kearwood Gilbert.
|
||||||
|
//
|
||||||
|
|
||||||
|
|
||||||
|
#include "KREngine-common.h"
|
||||||
|
|
||||||
|
#include "KRCamera.h"
|
||||||
|
#include "KRDataBlock.h"
|
||||||
|
#include "KRNode.h"
|
||||||
|
|
||||||
|
using std::map;
|
||||||
|
using std::vector;
|
||||||
|
|
||||||
|
#include "KRPipeline.h"
|
||||||
|
|
||||||
|
#ifndef KRPIPELINEMANAGER_H
|
||||||
|
#define KRPIPELINEMANAGER_H
|
||||||
|
|
||||||
|
class KRPipeline;
|
||||||
|
class KRCamera;
|
||||||
|
|
||||||
|
class KRPipelineManager : public KRContextObject {
|
||||||
|
public:
|
||||||
|
KRPipelineManager(KRContext &context);
|
||||||
|
virtual ~KRPipelineManager();
|
||||||
|
|
||||||
|
KRPipeline *getPipeline(const std::string &pipeline_name, KRCamera *pCamera, const std::vector<KRPointLight *> &point_lights, const std::vector<KRDirectionalLight *> &directional_lights, const std::vector<KRSpotLight *>&spot_lights, int bone_count, bool bDiffuseMap, bool bNormalMap, bool bSpecMap, bool bReflectionMap, bool bReflectionCubeMap, bool bLightMap, bool bDiffuseMapScale,bool bSpecMapScale, bool bNormalMapScale, bool bReflectionMapScale, bool bDiffuseMapOffset, bool bSpecMapOffset, bool bNormalMapOffset, bool bReflectionMapOffset, bool bAlphaTest, bool bAlphaBlend, KRNode::RenderPass renderPass, bool bRimColor = false);
|
||||||
|
|
||||||
|
bool selectPipeline(KRCamera &camera, KRPipeline *pPipeline, const KRViewport &viewport, const Matrix4 &matModel, const std::vector<KRPointLight *> &point_lights, const std::vector<KRDirectionalLight *> &directional_lights, const std::vector<KRSpotLight *>&spot_lights, int bone_count, const KRNode::RenderPass &renderPass, const Vector3 &rim_color, float rim_power, const Vector4 &fade_color);
|
||||||
|
|
||||||
|
bool selectPipeline(const std::string &pipeline_name, KRCamera &camera, const std::vector<KRPointLight *> &point_lights, const std::vector<KRDirectionalLight *> &directional_lights, const std::vector<KRSpotLight *>&spot_lights, int bone_count, const KRViewport &viewport, const Matrix4 &matModel, bool bDiffuseMap, bool bNormalMap, bool bSpecMap, bool bReflectionMap, bool bReflectionCubeMap, bool bLightMap, bool bDiffuseMapScale,bool bSpecMapScale, bool bNormalMapScale, bool bReflectionMapScale, bool bDiffuseMapOffset, bool bSpecMapOffset, bool bNormalMapOffset, bool bReflectionMapOffset, bool bAlphaTest, bool bAlphaBlend, KRNode::RenderPass renderPass, const Vector3 &rim_color, float rim_power, const Vector4 &fade_color);
|
||||||
|
|
||||||
|
size_t getPipelineHandlesUsed();
|
||||||
|
|
||||||
|
KRPipeline *m_active_pipeline;
|
||||||
|
|
||||||
|
private:
|
||||||
|
std::map<std::pair<std::string, std::vector<int> >, KRPipeline *> m_pipelines;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -67,15 +67,15 @@ void KRPointLight::render(KRCamera *pCamera, std::vector<KRPointLight *> &point_
|
|||||||
|
|
||||||
bool bInsideLight = view_light_position.sqrMagnitude() <= (influence_radius + pCamera->settings.getPerspectiveNearZ()) * (influence_radius + pCamera->settings.getPerspectiveNearZ());
|
bool bInsideLight = view_light_position.sqrMagnitude() <= (influence_radius + pCamera->settings.getPerspectiveNearZ()) * (influence_radius + pCamera->settings.getPerspectiveNearZ());
|
||||||
|
|
||||||
KRShader *pShader = getContext().getShaderManager()->getShader(bVisualize ? "visualize_overlay" : (bInsideLight ? "light_point_inside" : "light_point"), pCamera, this_light, std::vector<KRDirectionalLight *>(), std::vector<KRSpotLight *>(), 0, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, renderPass);
|
KRPipeline *pShader = getContext().getPipelineManager()->getPipeline(bVisualize ? "visualize_overlay" : (bInsideLight ? "light_point_inside" : "light_point"), pCamera, this_light, std::vector<KRDirectionalLight *>(), std::vector<KRSpotLight *>(), 0, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, renderPass);
|
||||||
if(getContext().getShaderManager()->selectShader(*pCamera, pShader, viewport, sphereModelMatrix, this_light, std::vector<KRDirectionalLight *>(), std::vector<KRSpotLight *>(), 0, renderPass, Vector3::Zero(), 0.0f, Vector4::Zero())) {
|
if(getContext().getPipelineManager()->selectPipeline(*pCamera, pShader, viewport, sphereModelMatrix, this_light, std::vector<KRDirectionalLight *>(), std::vector<KRSpotLight *>(), 0, renderPass, Vector3::Zero(), 0.0f, Vector4::Zero())) {
|
||||||
|
|
||||||
|
|
||||||
pShader->setUniform(KRShader::KRENGINE_UNIFORM_LIGHT_COLOR, m_color);
|
pShader->setUniform(KRPipeline::KRENGINE_UNIFORM_LIGHT_COLOR, m_color);
|
||||||
pShader->setUniform(KRShader::KRENGINE_UNIFORM_LIGHT_INTENSITY, m_intensity * 0.01f);
|
pShader->setUniform(KRPipeline::KRENGINE_UNIFORM_LIGHT_INTENSITY, m_intensity * 0.01f);
|
||||||
pShader->setUniform(KRShader::KRENGINE_UNIFORM_LIGHT_DECAY_START, getDecayStart());
|
pShader->setUniform(KRPipeline::KRENGINE_UNIFORM_LIGHT_DECAY_START, getDecayStart());
|
||||||
pShader->setUniform(KRShader::KRENGINE_UNIFORM_LIGHT_CUTOFF, KRLIGHT_MIN_INFLUENCE);
|
pShader->setUniform(KRPipeline::KRENGINE_UNIFORM_LIGHT_CUTOFF, KRLIGHT_MIN_INFLUENCE);
|
||||||
pShader->setUniform(KRShader::KRENGINE_UNIFORM_LIGHT_POSITION, light_position);
|
pShader->setUniform(KRPipeline::KRENGINE_UNIFORM_LIGHT_POSITION, light_position);
|
||||||
|
|
||||||
|
|
||||||
if(bVisualize) {
|
if(bVisualize) {
|
||||||
|
|||||||
@@ -95,9 +95,9 @@ void KRReverbZone::render(KRCamera *pCamera, std::vector<KRPointLight *> &point_
|
|||||||
if(renderPass == KRNode::RENDER_PASS_FORWARD_TRANSPARENT && bVisualize) {
|
if(renderPass == KRNode::RENDER_PASS_FORWARD_TRANSPARENT && bVisualize) {
|
||||||
Matrix4 sphereModelMatrix = getModelMatrix();
|
Matrix4 sphereModelMatrix = getModelMatrix();
|
||||||
|
|
||||||
KRShader *pShader = getContext().getShaderManager()->getShader("visualize_overlay", pCamera, point_lights, directional_lights, spot_lights, 0, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, renderPass);
|
KRPipeline *pShader = getContext().getPipelineManager()->getPipeline("visualize_overlay", pCamera, point_lights, directional_lights, spot_lights, 0, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, renderPass);
|
||||||
|
|
||||||
if(getContext().getShaderManager()->selectShader(*pCamera, pShader, viewport, sphereModelMatrix, point_lights, directional_lights, spot_lights, 0, renderPass, Vector3::Zero(), 0.0f, Vector4::Zero())) {
|
if(getContext().getPipelineManager()->selectPipeline(*pCamera, pShader, viewport, sphereModelMatrix, point_lights, directional_lights, spot_lights, 0, renderPass, Vector3::Zero(), 0.0f, Vector4::Zero())) {
|
||||||
|
|
||||||
// Enable additive blending
|
// Enable additive blending
|
||||||
GLDEBUG(glEnable(GL_BLEND));
|
GLDEBUG(glEnable(GL_BLEND));
|
||||||
|
|||||||
@@ -298,7 +298,7 @@ void KRScene::render(KROctreeNode *pOctreeNode, unordered_map<AABB, int> &visibl
|
|||||||
GLDEBUG(glDepthMask(GL_FALSE));
|
GLDEBUG(glDepthMask(GL_FALSE));
|
||||||
}
|
}
|
||||||
|
|
||||||
if(getContext().getShaderManager()->selectShader("occlusion_test", *pCamera, point_lights, directional_lights, spot_lights, 0, viewport, matModel, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, KRNode::RENDER_PASS_FORWARD_TRANSPARENT, Vector3::Zero(), 0.0f, Vector4::Zero())) {
|
if(getContext().getPipelineManager()->selectPipeline("occlusion_test", *pCamera, point_lights, directional_lights, spot_lights, 0, viewport, matModel, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, KRNode::RENDER_PASS_FORWARD_TRANSPARENT, Vector3::Zero(), 0.0f, Vector4::Zero())) {
|
||||||
GLDEBUG(glDrawArrays(GL_TRIANGLE_STRIP, 0, 14));
|
GLDEBUG(glDrawArrays(GL_TRIANGLE_STRIP, 0, 14));
|
||||||
m_pContext->getMeshManager()->log_draw_call(renderPass, "octree", "occlusion_test", 14);
|
m_pContext->getMeshManager()->log_draw_call(renderPass, "octree", "occlusion_test", 14);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,70 +0,0 @@
|
|||||||
//
|
|
||||||
// KRShaderManager.h
|
|
||||||
// KREngine
|
|
||||||
//
|
|
||||||
// Copyright 2012 Kearwood Gilbert. All rights reserved.
|
|
||||||
//
|
|
||||||
// Redistribution and use in source and binary forms, with or without modification, are
|
|
||||||
// permitted provided that the following conditions are met:
|
|
||||||
//
|
|
||||||
// 1. Redistributions of source code must retain the above copyright notice, this list of
|
|
||||||
// conditions and the following disclaimer.
|
|
||||||
//
|
|
||||||
// 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
|
||||||
// of conditions and the following disclaimer in the documentation and/or other materials
|
|
||||||
// provided with the distribution.
|
|
||||||
//
|
|
||||||
// THIS SOFTWARE IS PROVIDED BY KEARWOOD GILBERT ''AS IS'' AND ANY EXPRESS OR IMPLIED
|
|
||||||
// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL KEARWOOD GILBERT OR
|
|
||||||
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
||||||
// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
|
||||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
|
||||||
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
|
||||||
// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
//
|
|
||||||
// The views and conclusions contained in the software and documentation are those of the
|
|
||||||
// authors and should not be interpreted as representing official policies, either expressed
|
|
||||||
// or implied, of Kearwood Gilbert.
|
|
||||||
//
|
|
||||||
|
|
||||||
|
|
||||||
#include "KREngine-common.h"
|
|
||||||
|
|
||||||
#include "KRCamera.h"
|
|
||||||
#include "KRDataBlock.h"
|
|
||||||
#include "KRNode.h"
|
|
||||||
|
|
||||||
using std::map;
|
|
||||||
using std::vector;
|
|
||||||
|
|
||||||
#include "KRShader.h"
|
|
||||||
|
|
||||||
#ifndef KRSHADERMANAGER_H
|
|
||||||
#define KRSHADERMANAGER_H
|
|
||||||
|
|
||||||
class KRShader;
|
|
||||||
class KRCamera;
|
|
||||||
|
|
||||||
class KRShaderManager : public KRContextObject {
|
|
||||||
public:
|
|
||||||
KRShaderManager(KRContext &context);
|
|
||||||
virtual ~KRShaderManager();
|
|
||||||
|
|
||||||
KRShader *getShader(const std::string &shader_name, KRCamera *pCamera, const std::vector<KRPointLight *> &point_lights, const std::vector<KRDirectionalLight *> &directional_lights, const std::vector<KRSpotLight *>&spot_lights, int bone_count, bool bDiffuseMap, bool bNormalMap, bool bSpecMap, bool bReflectionMap, bool bReflectionCubeMap, bool bLightMap, bool bDiffuseMapScale,bool bSpecMapScale, bool bNormalMapScale, bool bReflectionMapScale, bool bDiffuseMapOffset, bool bSpecMapOffset, bool bNormalMapOffset, bool bReflectionMapOffset, bool bAlphaTest, bool bAlphaBlend, KRNode::RenderPass renderPass, bool bRimColor = false);
|
|
||||||
|
|
||||||
bool selectShader(KRCamera &camera, KRShader *pShader, const KRViewport &viewport, const Matrix4 &matModel, const std::vector<KRPointLight *> &point_lights, const std::vector<KRDirectionalLight *> &directional_lights, const std::vector<KRSpotLight *>&spot_lights, int bone_count, const KRNode::RenderPass &renderPass, const Vector3 &rim_color, float rim_power, const Vector4 &fade_color);
|
|
||||||
|
|
||||||
bool selectShader(const std::string &shader_name, KRCamera &camera, const std::vector<KRPointLight *> &point_lights, const std::vector<KRDirectionalLight *> &directional_lights, const std::vector<KRSpotLight *>&spot_lights, int bone_count, const KRViewport &viewport, const Matrix4 &matModel, bool bDiffuseMap, bool bNormalMap, bool bSpecMap, bool bReflectionMap, bool bReflectionCubeMap, bool bLightMap, bool bDiffuseMapScale,bool bSpecMapScale, bool bNormalMapScale, bool bReflectionMapScale, bool bDiffuseMapOffset, bool bSpecMapOffset, bool bNormalMapOffset, bool bReflectionMapOffset, bool bAlphaTest, bool bAlphaBlend, KRNode::RenderPass renderPass, const Vector3 &rim_color, float rim_power, const Vector4 &fade_color);
|
|
||||||
|
|
||||||
size_t getShaderHandlesUsed();
|
|
||||||
|
|
||||||
KRShader *m_active_shader;
|
|
||||||
|
|
||||||
private:
|
|
||||||
//unordered_map<std::string, KRShader *> m_shaders;
|
|
||||||
std::map<std::pair<std::string, std::vector<int> >, KRShader *> m_shaders;
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -14,8 +14,8 @@
|
|||||||
#include "KRCamera.h"
|
#include "KRCamera.h"
|
||||||
#include "KRContext.h"
|
#include "KRContext.h"
|
||||||
|
|
||||||
#include "KRShaderManager.h"
|
#include "KRPipelineManager.h"
|
||||||
#include "KRShader.h"
|
#include "KRPipeline.h"
|
||||||
#include "KRStockGeometry.h"
|
#include "KRStockGeometry.h"
|
||||||
#include "KRDirectionalLight.h"
|
#include "KRDirectionalLight.h"
|
||||||
#include "KRSpotLight.h"
|
#include "KRSpotLight.h"
|
||||||
@@ -127,9 +127,9 @@ void KRSprite::render(KRCamera *pCamera, std::vector<KRPointLight *> &point_ligh
|
|||||||
GLDEBUG(glDepthRangef(0.0, 1.0));
|
GLDEBUG(glDepthRangef(0.0, 1.0));
|
||||||
|
|
||||||
// Render light sprite on transparency pass
|
// Render light sprite on transparency pass
|
||||||
KRShader *pShader = getContext().getShaderManager()->getShader("sprite", pCamera, point_lights, directional_lights, spot_lights, 0, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, renderPass);
|
KRPipeline *pShader = getContext().getPipelineManager()->getPipeline("sprite", pCamera, point_lights, directional_lights, spot_lights, 0, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, renderPass);
|
||||||
if(getContext().getShaderManager()->selectShader(*pCamera, pShader, viewport, getModelMatrix(), point_lights, directional_lights, spot_lights, 0, renderPass, Vector3::Zero(), 0.0f, Vector4::Zero())) {
|
if(getContext().getPipelineManager()->selectPipeline(*pCamera, pShader, viewport, getModelMatrix(), point_lights, directional_lights, spot_lights, 0, renderPass, Vector3::Zero(), 0.0f, Vector4::Zero())) {
|
||||||
pShader->setUniform(KRShader::KRENGINE_UNIFORM_MATERIAL_ALPHA, m_spriteAlpha);
|
pShader->setUniform(KRPipeline::KRENGINE_UNIFORM_MATERIAL_ALPHA, m_spriteAlpha);
|
||||||
m_pContext->getTextureManager()->selectTexture(0, m_pSpriteTexture, 0.0f, KRTexture::TEXTURE_USAGE_SPRITE);
|
m_pContext->getTextureManager()->selectTexture(0, m_pSpriteTexture, 0.0f, KRTexture::TEXTURE_USAGE_SPRITE);
|
||||||
m_pContext->getMeshManager()->bindVBO(&m_pContext->getMeshManager()->KRENGINE_VBO_DATA_2D_SQUARE_VERTICES, 1.0f);
|
m_pContext->getMeshManager()->bindVBO(&m_pContext->getMeshManager()->KRENGINE_VBO_DATA_2D_SQUARE_VERTICES, 1.0f);
|
||||||
GLDEBUG(glDrawArrays(GL_TRIANGLE_STRIP, 0, 4));
|
GLDEBUG(glDrawArrays(GL_TRIANGLE_STRIP, 0, 4));
|
||||||
|
|||||||
73
kraken_win/3rdparty/glew/glew-1.13.0/LICENSE.txt
vendored
73
kraken_win/3rdparty/glew/glew-1.13.0/LICENSE.txt
vendored
@@ -1,73 +0,0 @@
|
|||||||
The OpenGL Extension Wrangler Library
|
|
||||||
Copyright (C) 2002-2007, Milan Ikits <milan ikits[]ieee org>
|
|
||||||
Copyright (C) 2002-2007, Marcelo E. Magallon <mmagallo[]debian org>
|
|
||||||
Copyright (C) 2002, Lev Povalahev
|
|
||||||
All rights reserved.
|
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
|
||||||
modification, are permitted provided that the following conditions are met:
|
|
||||||
|
|
||||||
* Redistributions of source code must retain the above copyright notice,
|
|
||||||
this list of conditions and the following disclaimer.
|
|
||||||
* Redistributions in binary form must reproduce the above copyright notice,
|
|
||||||
this list of conditions and the following disclaimer in the documentation
|
|
||||||
and/or other materials provided with the distribution.
|
|
||||||
* The name of the author may be used to endorse or promote products
|
|
||||||
derived from this software without specific prior written permission.
|
|
||||||
|
|
||||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
|
||||||
THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
|
|
||||||
|
|
||||||
Mesa 3-D graphics library
|
|
||||||
Version: 7.0
|
|
||||||
|
|
||||||
Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
copy of this software and associated documentation files (the "Software"),
|
|
||||||
to deal in the Software without restriction, including without limitation
|
|
||||||
the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
||||||
and/or sell copies of the Software, and to permit persons to whom the
|
|
||||||
Software is furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included
|
|
||||||
in all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
|
||||||
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
||||||
BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
|
||||||
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
|
||||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
||||||
|
|
||||||
|
|
||||||
Copyright (c) 2007 The Khronos Group Inc.
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
copy of this software and/or associated documentation files (the
|
|
||||||
"Materials"), to deal in the Materials without restriction, including
|
|
||||||
without limitation the rights to use, copy, modify, merge, publish,
|
|
||||||
distribute, sublicense, and/or sell copies of the Materials, and to
|
|
||||||
permit persons to whom the Materials are furnished to do so, subject to
|
|
||||||
the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included
|
|
||||||
in all copies or substantial portions of the Materials.
|
|
||||||
|
|
||||||
THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
||||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
||||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
|
||||||
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
|
||||||
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
|
||||||
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
|
||||||
MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
|
|
||||||
34
kraken_win/3rdparty/glew/glew-1.13.0/README.txt
vendored
34
kraken_win/3rdparty/glew/glew-1.13.0/README.txt
vendored
@@ -1,34 +0,0 @@
|
|||||||
GLEW - The OpenGL Extension Wrangler Library
|
|
||||||
|
|
||||||
http://glew.sourceforge.net/
|
|
||||||
https://github.com/nigels-com/glew
|
|
||||||
|
|
||||||
See doc/index.html for more information.
|
|
||||||
|
|
||||||
If you downloaded the tarball from the GLEW website, you just need to:
|
|
||||||
|
|
||||||
Unix:
|
|
||||||
|
|
||||||
make
|
|
||||||
|
|
||||||
sudo -s
|
|
||||||
|
|
||||||
make install
|
|
||||||
|
|
||||||
make clean
|
|
||||||
|
|
||||||
Windows:
|
|
||||||
|
|
||||||
use the project file in build/vc12/
|
|
||||||
|
|
||||||
If you wish to build GLEW from scratch (update the extension data from
|
|
||||||
the net or add your own extension information), you need a Unix
|
|
||||||
environment (including wget, perl, and GNU make). The extension data
|
|
||||||
is regenerated from the top level source directory with:
|
|
||||||
|
|
||||||
make extensions
|
|
||||||
|
|
||||||
An alternative to generating the GLEW sources from scratch is to
|
|
||||||
download a pre-generated (unsupported) snapshot:
|
|
||||||
|
|
||||||
https://sourceforge.net/projects/glew/files/glew/snapshots/
|
|
||||||
12
kraken_win/3rdparty/glew/glew-1.13.0/TODO.txt
vendored
12
kraken_win/3rdparty/glew/glew-1.13.0/TODO.txt
vendored
@@ -1,12 +0,0 @@
|
|||||||
Major:
|
|
||||||
- add support for windows mini-client drivers
|
|
||||||
- add windows installer (msi)
|
|
||||||
- separate build of static and shared object files (for mingw and
|
|
||||||
cygwin)
|
|
||||||
- start designing GLEW 2.0
|
|
||||||
|
|
||||||
Minor:
|
|
||||||
- make auto scripts work with text mode cygwin mounts
|
|
||||||
- add support for all SUN, MTX, and OML extensions
|
|
||||||
- make auto/Makefile more robust against auto/core/*~ mistakes
|
|
||||||
- web poll on separating glew, glxew and wglew
|
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,267 +0,0 @@
|
|||||||
<!-- begin header.html -->
|
|
||||||
<!--
|
|
||||||
The OpenGL Extension Wrangler Library
|
|
||||||
Copyright (C) 2008-2015, Nigel Stewart <nigels[]users sourceforge net>
|
|
||||||
Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
|
|
||||||
Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
|
|
||||||
Copyright (C) 2002, Lev Povalahev
|
|
||||||
All rights reserved.
|
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
|
||||||
modification, are permitted provided that the following conditions are met:
|
|
||||||
|
|
||||||
* Redistributions of source code must retain the above copyright notice,
|
|
||||||
this list of conditions and the following disclaimer.
|
|
||||||
* Redistributions in binary form must reproduce the above copyright notice,
|
|
||||||
this list of conditions and the following disclaimer in the documentation
|
|
||||||
and/or other materials provided with the distribution.
|
|
||||||
* The name of the author may be used to endorse or promote products
|
|
||||||
derived from this software without specific prior written permission.
|
|
||||||
|
|
||||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
|
||||||
THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
-->
|
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html/4/loose.dtd">
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<title>GLEW: The OpenGL Extension Wrangler Library</title>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
|
||||||
<link href="glew.css" type="text/css" rel="stylesheet">
|
|
||||||
</head>
|
|
||||||
<body bgcolor="#fff0d0">
|
|
||||||
<table border="0" width="100%" cellpadding="12" cellspacing="8" style="height:100%">
|
|
||||||
<tr>
|
|
||||||
<td bgcolor="#ffffff" align="left" valign="top" width="200">
|
|
||||||
<table border="0" width="100%" cellpadding="0" cellspacing="0" align="left">
|
|
||||||
<tr>
|
|
||||||
<td valign="top">
|
|
||||||
|
|
||||||
<table border="0" width="100%" cellpadding="0" cellspacing="0" align="left">
|
|
||||||
<tr><td align="center"><i>Latest Release: <a href="https://sourceforge.net/projects/glew/files/glew/1.13.0/">1.13.0</a></i></td></tr>
|
|
||||||
<tr><td align="center"><br></td></tr>
|
|
||||||
<tr><td align="center"><img src="./glew.png" alt="GLEW Logo" width="97" height="75"></td></tr>
|
|
||||||
<tr><td align="center"><br></td></tr>
|
|
||||||
<tr><td align="center">
|
|
||||||
<table border="0" cellpadding="0" cellspacing="0" align="center">
|
|
||||||
<tr><td align="center"><a href="index.html">Download</a></td></tr>
|
|
||||||
<tr><td align="center"><a href="basic.html">Usage</a></td></tr>
|
|
||||||
<tr><td align="center"><a href="build.html">Building</a></td></tr>
|
|
||||||
<tr><td align="center"><a href="install.html">Installation</a></td></tr>
|
|
||||||
<tr><td align="center">Source Generation</td></tr>
|
|
||||||
<tr><td align="center"><a href="credits.html">Credits & Copyright</a></td></tr>
|
|
||||||
<tr><td align="center"><a href="log.html">Change Log</a></td></tr>
|
|
||||||
<tr></tr>
|
|
||||||
<tr><td align="center"><a href="https://github.com/nigels-com/glew">GitHub</a></td></tr>
|
|
||||||
<tr><td align="center"><a href="https://sourceforge.net/projects/glew">Project Page</a></td></tr>
|
|
||||||
<tr><td align="center"><a href="http://sourceforge.net/p/glew/bugs/">Bug Tracker</a></td></tr>
|
|
||||||
</table>
|
|
||||||
<tr><td align="center"><br></tr>
|
|
||||||
</table>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
|
|
||||||
<td valign="bottom">
|
|
||||||
<table border="0" width="100%" cellpadding="5" cellspacing="0" align="left">
|
|
||||||
<tr><td align="center"><i>Last Update: 08-10-15</i></td></tr>
|
|
||||||
<tr><td align="center">
|
|
||||||
<a href="http://www.opengl.org"><img src="./ogl_sm.jpg" width="68" height="35" border="0" alt="OpenGL Logo"></a><br/>
|
|
||||||
<a href="https://github.com/nigels-com/glew"><img src="github.png" width="70" height="29" border="0" alt="GitHub Logo"></a><br/>
|
|
||||||
<a href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=67586&type=1" width="88" height="31" border="0" alt="SourceForge Logo"></a>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</td>
|
|
||||||
|
|
||||||
<td bgcolor="#ffffff" align="left" valign="top">
|
|
||||||
|
|
||||||
<h1>The OpenGL Extension Wrangler Library</h1>
|
|
||||||
|
|
||||||
<!-- end header.html -->
|
|
||||||
|
|
||||||
|
|
||||||
<h2>Automatic Code Generation</h2>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Starting from release 1.1.0, the source code and parts of the
|
|
||||||
documentation are automatically generated from the extension
|
|
||||||
specifications in a two-step process. In the first step,
|
|
||||||
specification files from the OpenGL registry are downloaded and
|
|
||||||
parsed. Skeleton descriptors are created for each extension. These
|
|
||||||
descriptors contain all necessary information for creating the source
|
|
||||||
code and documentation in a simple and compact format, including the
|
|
||||||
name of the extension, url link to the specification, tokens, function
|
|
||||||
declarations, typedefs and struct definitions. In the second step,
|
|
||||||
the header files as well as the library and glewinfo source are
|
|
||||||
generated from the descriptor files. The code generation scripts are
|
|
||||||
located in the <tt>auto</tt> subdirectory.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
The code generation scripts require GNU make, wget, and perl. On
|
|
||||||
Windows, the simplest way to get access to these tools is to install
|
|
||||||
<a href="http://www.cygwin.com/">Cygwin</a>, but make sure that the
|
|
||||||
root directory is mounted in binary mode. The makefile in the
|
|
||||||
<tt>auto</tt> directory provides the following build targets:
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<table border=0 cellpadding=0 cellspacing=5>
|
|
||||||
<tr><td align="left" valign="top"><tt>make</tt></td>
|
|
||||||
<td align=left>Create the source files from the descriptors.<br/> If the
|
|
||||||
descriptors do not exist, create them from the spec files.<br/> If the spec
|
|
||||||
files do not exist, download them from the OpenGL repository.</td></tr>
|
|
||||||
<tr><td align="left" valign="top"><tt>make clean</tt></td>
|
|
||||||
<td align=left>Delete the source files.</td></tr>
|
|
||||||
<tr><td align="left" valign="top"><tt>make clobber</tt></td>
|
|
||||||
<td align=left>Delete the source files and the descriptors.</td></tr>
|
|
||||||
<tr><td align="left" valign="top"><tt>make destroy</tt></td>
|
|
||||||
<td align=left>Delete the source files, the descriptors, and the spec files.</td></tr>
|
|
||||||
<tr><td align="left" valign="top"><tt>make custom</tt></td>
|
|
||||||
<td align=left>Create the source files for the extensions
|
|
||||||
listed in <tt>auto/custom.txt</tt>.<br/> See "Custom Code
|
|
||||||
Generation" below for more details.</td></tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<h3>Adding a New Extension</h3>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
To add a new extension, create a descriptor file for the extension in
|
|
||||||
<tt>auto/core</tt> and rerun the code generation scripts by typing
|
|
||||||
<tt>make clean; make</tt> in the <tt>auto</tt> directory.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
The format of the descriptor file is given below. Items in
|
|
||||||
brackets are optional.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p class="pre">
|
|
||||||
<Extension Name><br>
|
|
||||||
[<URL of Specification File>]<br>
|
|
||||||
[<Token Name> <Token Value>]<br>
|
|
||||||
[<Token Name> <Token Value>]<br>
|
|
||||||
...<br>
|
|
||||||
[<Typedef>]<br>
|
|
||||||
[<Typedef>]<br>
|
|
||||||
...<br>
|
|
||||||
[<Function Signature>]<br>
|
|
||||||
[<Function Signature>]<br>
|
|
||||||
...<br>
|
|
||||||
<!-- [<Function Definition>]<br>
|
|
||||||
[<Function Definition>]<br>
|
|
||||||
...<br> -->
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<!--
|
|
||||||
<p>
|
|
||||||
Note that <tt>Function Definitions</tt> are copied to the header files
|
|
||||||
without changes and have to be terminated with a semicolon. In
|
|
||||||
contrast, <tt>Tokens</tt>, <tt>Function signatures</tt>, and
|
|
||||||
<tt>Typedefs</tt> should not be terminated with a semicolon.
|
|
||||||
</p>
|
|
||||||
-->
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Take a look at one of the files in <tt>auto/core</tt> for an
|
|
||||||
example. Note that typedefs and function signatures should not be
|
|
||||||
terminated with a semicolon.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h3>Custom Code Generation</h3>
|
|
||||||
<p>
|
|
||||||
Starting from GLEW 1.3.0, it is possible to control which extensions
|
|
||||||
to include in the libarary by specifying a list in
|
|
||||||
<tt>auto/custom.txt</tt>. This is useful when you do not need all the
|
|
||||||
extensions and would like to reduce the size of the source files.
|
|
||||||
Type <tt>make clean; make custom</tt> in the <tt>auto</tt> directory
|
|
||||||
to rerun the scripts with the custom list of extensions.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
For example, the following is the list of extensions needed to get GLEW and the
|
|
||||||
utilities to compile.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p class="pre">
|
|
||||||
WGL_ARB_extensions_string<br>
|
|
||||||
WGL_ARB_multisample<br>
|
|
||||||
WGL_ARB_pixel_format<br>
|
|
||||||
WGL_ARB_pbuffer<br>
|
|
||||||
WGL_EXT_extensions_string<br>
|
|
||||||
WGL_ATI_pixel_format_float<br>
|
|
||||||
WGL_NV_float_buffer<br>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h2>Multiple Rendering Contexts (GLEW MX)</h2>
|
|
||||||
|
|
||||||
<p>Starting with release 1.2.0, thread-safe support for multiple
|
|
||||||
rendering contexts, possibly with different capabilities, is
|
|
||||||
available. Since this is not required by most users, it is not added
|
|
||||||
to the binary releases to maintain compatibility between different
|
|
||||||
versions. To include multi-context support, you have to do the
|
|
||||||
following:</p>
|
|
||||||
<ol>
|
|
||||||
<li>Compile and use GLEW with the <tt>GLEW_MX</tt> preprocessor token
|
|
||||||
defined.</li>
|
|
||||||
<li>For each rendering context, create a <tt>GLEWContext</tt> object
|
|
||||||
that will be available as long as the rendering context exists.</li>
|
|
||||||
<li>Define a macro or function called <tt>glewGetContext()</tt> that
|
|
||||||
returns a pointer to the <tt>GLEWContext</tt> object associated with
|
|
||||||
the rendering context from which OpenGL/WGL/GLX calls are issued. This
|
|
||||||
dispatch mechanism is primitive, but generic.
|
|
||||||
<li>Make sure that you call <tt>glewInit()</tt> after creating the
|
|
||||||
<tt>GLEWContext</tt> object in each rendering context. Note, that the
|
|
||||||
<tt>GLEWContext</tt> pointer returned by <tt>glewGetContext()</tt> has
|
|
||||||
to reside in global or thread-local memory.
|
|
||||||
</ol>
|
|
||||||
|
|
||||||
<p>Note that according to the <a
|
|
||||||
href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/opengl/ntopnglr_6yer.asp">MSDN
|
|
||||||
WGL documentation</a>, you have to initialize the entry points for
|
|
||||||
every rendering context that use pixel formats with different
|
|
||||||
capabilities For example, the pixel formats provided by the generic
|
|
||||||
software OpenGL implementation by Microsoft vs. the hardware
|
|
||||||
accelerated pixel formats have different capabilities. <b>GLEW by
|
|
||||||
default ignores this requirement, and does not define per-context
|
|
||||||
entry points (you can however do this using the steps described
|
|
||||||
above).</b> Assuming a global namespace for the entry points works in
|
|
||||||
most situations, because typically all hardware accelerated pixel
|
|
||||||
formats provide the same entry points and capabilities. This means
|
|
||||||
that unless you use the multi-context version of GLEW, you need to
|
|
||||||
call <tt>glewInit()</tt> only once in your program, or more precisely,
|
|
||||||
once per process.</p>
|
|
||||||
|
|
||||||
<h2>Separate Namespace</h2>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
To avoid name clashes when linking with libraries that include the
|
|
||||||
same symbols, extension entry points are declared in a separate
|
|
||||||
namespace (release 1.1.0 and up). This is achieved by aliasing OpenGL
|
|
||||||
function names to their GLEW equivalents. For instance,
|
|
||||||
<tt>glFancyFunction</tt> is simply an alias to
|
|
||||||
<tt>glewFancyFunction</tt>. The separate namespace does not effect
|
|
||||||
token and function pointer definitions.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h2>Known Issues</h2>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
GLEW requires GLX 1.2 for compatibility with GLUT.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<!-- begin footer.html -->
|
|
||||||
</td></tr></table></body>
|
|
||||||
<!-- end footer.html -->
|
|
||||||
|
|
||||||
278
kraken_win/3rdparty/glew/glew-1.13.0/doc/basic.html
vendored
278
kraken_win/3rdparty/glew/glew-1.13.0/doc/basic.html
vendored
@@ -1,278 +0,0 @@
|
|||||||
<!-- begin header.html -->
|
|
||||||
<!--
|
|
||||||
The OpenGL Extension Wrangler Library
|
|
||||||
Copyright (C) 2008-2015, Nigel Stewart <nigels[]users sourceforge net>
|
|
||||||
Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
|
|
||||||
Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
|
|
||||||
Copyright (C) 2002, Lev Povalahev
|
|
||||||
All rights reserved.
|
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
|
||||||
modification, are permitted provided that the following conditions are met:
|
|
||||||
|
|
||||||
* Redistributions of source code must retain the above copyright notice,
|
|
||||||
this list of conditions and the following disclaimer.
|
|
||||||
* Redistributions in binary form must reproduce the above copyright notice,
|
|
||||||
this list of conditions and the following disclaimer in the documentation
|
|
||||||
and/or other materials provided with the distribution.
|
|
||||||
* The name of the author may be used to endorse or promote products
|
|
||||||
derived from this software without specific prior written permission.
|
|
||||||
|
|
||||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
|
||||||
THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
-->
|
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html/4/loose.dtd">
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<title>GLEW: The OpenGL Extension Wrangler Library</title>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
|
||||||
<link href="glew.css" type="text/css" rel="stylesheet">
|
|
||||||
</head>
|
|
||||||
<body bgcolor="#fff0d0">
|
|
||||||
<table border="0" width="100%" cellpadding="12" cellspacing="8" style="height:100%">
|
|
||||||
<tr>
|
|
||||||
<td bgcolor="#ffffff" align="left" valign="top" width="200">
|
|
||||||
<table border="0" width="100%" cellpadding="0" cellspacing="0" align="left">
|
|
||||||
<tr>
|
|
||||||
<td valign="top">
|
|
||||||
|
|
||||||
<table border="0" width="100%" cellpadding="0" cellspacing="0" align="left">
|
|
||||||
<tr><td align="center"><i>Latest Release: <a href="https://sourceforge.net/projects/glew/files/glew/1.13.0/">1.13.0</a></i></td></tr>
|
|
||||||
<tr><td align="center"><br></td></tr>
|
|
||||||
<tr><td align="center"><img src="./glew.png" alt="GLEW Logo" width="97" height="75"></td></tr>
|
|
||||||
<tr><td align="center"><br></td></tr>
|
|
||||||
<tr><td align="center">
|
|
||||||
<table border="0" cellpadding="0" cellspacing="0" align="center">
|
|
||||||
<tr><td align="center"><a href="index.html">Download</a></td></tr>
|
|
||||||
<tr><td align="center">Usage</td></tr>
|
|
||||||
<tr><td align="center"><a href="build.html">Building</a></td></tr>
|
|
||||||
<tr><td align="center"><a href="install.html">Installation</a></td></tr>
|
|
||||||
<tr><td align="center"><a href="advanced.html">Source Generation</a></td></tr>
|
|
||||||
<tr><td align="center"><a href="credits.html">Credits & Copyright</a></td></tr>
|
|
||||||
<tr><td align="center"><a href="log.html">Change Log</a></td></tr>
|
|
||||||
<tr></tr>
|
|
||||||
<tr><td align="center"><a href="https://github.com/nigels-com/glew">GitHub</a></td></tr>
|
|
||||||
<tr><td align="center"><a href="https://sourceforge.net/projects/glew">Project Page</a></td></tr>
|
|
||||||
<tr><td align="center"><a href="http://sourceforge.net/p/glew/bugs/">Bug Tracker</a></td></tr>
|
|
||||||
</table>
|
|
||||||
<tr><td align="center"><br></tr>
|
|
||||||
</table>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
|
|
||||||
<td valign="bottom">
|
|
||||||
<table border="0" width="100%" cellpadding="5" cellspacing="0" align="left">
|
|
||||||
<tr><td align="center"><i>Last Update: 08-10-15</i></td></tr>
|
|
||||||
<tr><td align="center">
|
|
||||||
<a href="http://www.opengl.org"><img src="./ogl_sm.jpg" width="68" height="35" border="0" alt="OpenGL Logo"></a><br/>
|
|
||||||
<a href="https://github.com/nigels-com/glew"><img src="github.png" width="70" height="29" border="0" alt="GitHub Logo"></a><br/>
|
|
||||||
<a href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=67586&type=1" width="88" height="31" border="0" alt="SourceForge Logo"></a>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</td>
|
|
||||||
|
|
||||||
<td bgcolor="#ffffff" align="left" valign="top">
|
|
||||||
|
|
||||||
<h1>The OpenGL Extension Wrangler Library</h1>
|
|
||||||
|
|
||||||
<!-- end header.html -->
|
|
||||||
|
|
||||||
|
|
||||||
<h2>Initializing GLEW</h2>
|
|
||||||
<p>
|
|
||||||
First you need to create a valid OpenGL rendering context and call
|
|
||||||
<tt>glewInit()</tt> to initialize the extension entry points. If
|
|
||||||
<tt>glewInit()</tt> returns <tt>GLEW_OK</tt>, the initialization
|
|
||||||
succeeded and you can use the available extensions as well as core
|
|
||||||
OpenGL functionality. For example:
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p class="pre">
|
|
||||||
#include <GL/glew.h><br>
|
|
||||||
#include <GL/glut.h><br>
|
|
||||||
...<br>
|
|
||||||
glutInit(&argc, argv);<br>
|
|
||||||
glutCreateWindow("GLEW Test");<br>
|
|
||||||
GLenum err = glewInit();<br>
|
|
||||||
if (GLEW_OK != err)<br>
|
|
||||||
{<br>
|
|
||||||
/* Problem: glewInit failed, something is seriously wrong. */<br>
|
|
||||||
fprintf(stderr, "Error: %s\n", glewGetErrorString(err));<br>
|
|
||||||
...<br>
|
|
||||||
}<br>
|
|
||||||
fprintf(stdout, "Status: Using GLEW %s\n", glewGetString(GLEW_VERSION));<br>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h2>Checking for Extensions</h2>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Starting from GLEW 1.1.0, you can find out if a particular extension
|
|
||||||
is available on your platform by querying globally defined variables
|
|
||||||
of the form <tt>GLEW_{extension_name}</tt>:
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p class="pre">
|
|
||||||
if (GLEW_ARB_vertex_program)<br>
|
|
||||||
{<br>
|
|
||||||
/* It is safe to use the ARB_vertex_program extension here. */<br>
|
|
||||||
glGenProgramsARB(...);<br>
|
|
||||||
}<br>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<b>In GLEW 1.0.x, a global structure was used for this task. To ensure
|
|
||||||
binary compatibility between releases, the struct was replaced with a
|
|
||||||
set of variables.</b>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
You can also check for core OpenGL functionality. For example, to
|
|
||||||
see if OpenGL 1.3 is supported, do the following:
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p class="pre">
|
|
||||||
if (GLEW_VERSION_1_3)<br>
|
|
||||||
{<br>
|
|
||||||
/* Yay! OpenGL 1.3 is supported! */<br>
|
|
||||||
}<br>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
In general, you can check if <tt>GLEW_{extension_name}</tt> or
|
|
||||||
<tt>GLEW_VERSION_{version}</tt> is true or false.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
It is also possible to perform extension checks from string
|
|
||||||
input. Starting from the 1.3.0 release, use <tt>glewIsSupported</tt>
|
|
||||||
to check if the required core or extension functionality is
|
|
||||||
available:
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p class="pre">
|
|
||||||
if (glewIsSupported("GL_VERSION_1_4 GL_ARB_point_sprite"))<br>
|
|
||||||
{<br>
|
|
||||||
/* Great, we have OpenGL 1.4 + point sprites. */<br>
|
|
||||||
}<br>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
For extensions only, <tt>glewGetExtension</tt> provides a slower alternative
|
|
||||||
(GLEW 1.0.x-1.2.x). <b>Note that in the 1.3.0 release </b>
|
|
||||||
<tt>glewGetExtension</tt> <b>was replaced with </b>
|
|
||||||
<tt>glewIsSupported</tt>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p class="pre">
|
|
||||||
if (glewGetExtension("GL_ARB_fragment_program"))<br>
|
|
||||||
{<br>
|
|
||||||
/* Looks like ARB_fragment_program is supported. */<br>
|
|
||||||
}<br>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h2>Experimental Drivers</h2>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
GLEW obtains information on the supported extensions from the graphics
|
|
||||||
driver. Experimental or pre-release drivers, however, might not
|
|
||||||
report every available extension through the standard mechanism, in
|
|
||||||
which case GLEW will report it unsupported. To circumvent this
|
|
||||||
situation, the <tt>glewExperimental</tt> global switch can be turned
|
|
||||||
on by setting it to <tt>GL_TRUE</tt> before calling
|
|
||||||
<tt>glewInit()</tt>, which ensures that all extensions with valid
|
|
||||||
entry points will be exposed.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h2>Platform Specific Extensions</h2>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Platform specific extensions are separated into two header files:
|
|
||||||
<tt>wglew.h</tt> and <tt>glxew.h</tt>, which define the available
|
|
||||||
<tt>WGL</tt> and <tt>GLX</tt> extensions. To determine if a certain
|
|
||||||
extension is supported, query <tt>WGLEW_{extension name}</tt> or
|
|
||||||
<tt>GLXEW_{extension_name}</tt>. For example:
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p class="pre">
|
|
||||||
#include <GL/wglew.h><br>
|
|
||||||
<br>
|
|
||||||
if (WGLEW_ARB_pbuffer)<br>
|
|
||||||
{<br>
|
|
||||||
/* OK, we can use pbuffers. */<br>
|
|
||||||
}<br>
|
|
||||||
else<br>
|
|
||||||
{<br>
|
|
||||||
/* Sorry, pbuffers will not work on this platform. */<br>
|
|
||||||
}<br>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Alternatively, use <tt>wglewIsSupported</tt> or
|
|
||||||
<tt>glxewIsSupported</tt> to check for extensions from a string:
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p class="pre">
|
|
||||||
if (wglewIsSupported("WGL_ARB_pbuffer"))<br>
|
|
||||||
{<br>
|
|
||||||
/* OK, we can use pbuffers. */<br>
|
|
||||||
}<br>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h2>Utilities</h2>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
GLEW provides two command-line utilities: one for creating a list of
|
|
||||||
available extensions and visuals; and another for verifying extension
|
|
||||||
entry points.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h3>visualinfo: extensions and visuals</h3>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<tt>visualinfo</tt> is an extended version of <tt>glxinfo</tt>. The
|
|
||||||
Windows version creates a file called <tt>visualinfo.txt</tt>, which
|
|
||||||
contains a list of available OpenGL, WGL, and GLU extensions as well
|
|
||||||
as a table of visuals aka. pixel formats. Pbuffer and MRT capable
|
|
||||||
visuals are also included. For additional usage information, type
|
|
||||||
<tt>visualinfo -h</tt>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h3>glewinfo: extension verification utility</h3>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<tt>glewinfo</tt> allows you to verify the entry points for the
|
|
||||||
extensions supported on your platform. The Windows version
|
|
||||||
reports the results to a text file called <tt>glewinfo.txt</tt>. The
|
|
||||||
Unix version prints the results to <tt>stdout</tt>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>Windows usage:</p>
|
|
||||||
<blockquote><pre>glewinfo [-pf <id>]</pre></blockquote>
|
|
||||||
|
|
||||||
<p>where <tt><id></tt> is the pixel format id for which the
|
|
||||||
capabilities are displayed.</p>
|
|
||||||
|
|
||||||
<p>Unix usage:</p>
|
|
||||||
<blockquote><pre>glewinfo [-display <dpy>] [-visual <id>]</pre></blockquote>
|
|
||||||
|
|
||||||
<p>where <tt><dpy></tt> is the X11 display and <tt><id></tt> is
|
|
||||||
the visual id for which the capabilities are displayed.</p>
|
|
||||||
|
|
||||||
<!-- begin footer.html -->
|
|
||||||
</td></tr></table></body>
|
|
||||||
<!-- end footer.html -->
|
|
||||||
|
|
||||||
147
kraken_win/3rdparty/glew/glew-1.13.0/doc/build.html
vendored
147
kraken_win/3rdparty/glew/glew-1.13.0/doc/build.html
vendored
@@ -1,147 +0,0 @@
|
|||||||
<!-- begin header.html -->
|
|
||||||
<!--
|
|
||||||
The OpenGL Extension Wrangler Library
|
|
||||||
Copyright (C) 2008-2015, Nigel Stewart <nigels[]users sourceforge net>
|
|
||||||
Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
|
|
||||||
Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
|
|
||||||
Copyright (C) 2002, Lev Povalahev
|
|
||||||
All rights reserved.
|
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
|
||||||
modification, are permitted provided that the following conditions are met:
|
|
||||||
|
|
||||||
* Redistributions of source code must retain the above copyright notice,
|
|
||||||
this list of conditions and the following disclaimer.
|
|
||||||
* Redistributions in binary form must reproduce the above copyright notice,
|
|
||||||
this list of conditions and the following disclaimer in the documentation
|
|
||||||
and/or other materials provided with the distribution.
|
|
||||||
* The name of the author may be used to endorse or promote products
|
|
||||||
derived from this software without specific prior written permission.
|
|
||||||
|
|
||||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
|
||||||
THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
-->
|
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html/4/loose.dtd">
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<title>GLEW: The OpenGL Extension Wrangler Library</title>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
|
||||||
<link href="glew.css" type="text/css" rel="stylesheet">
|
|
||||||
</head>
|
|
||||||
<body bgcolor="#fff0d0">
|
|
||||||
<table border="0" width="100%" cellpadding="12" cellspacing="8" style="height:100%">
|
|
||||||
<tr>
|
|
||||||
<td bgcolor="#ffffff" align="left" valign="top" width="200">
|
|
||||||
<table border="0" width="100%" cellpadding="0" cellspacing="0" align="left">
|
|
||||||
<tr>
|
|
||||||
<td valign="top">
|
|
||||||
|
|
||||||
<table border="0" width="100%" cellpadding="0" cellspacing="0" align="left">
|
|
||||||
<tr><td align="center"><i>Latest Release: <a href="https://sourceforge.net/projects/glew/files/glew/1.13.0/">1.13.0</a></i></td></tr>
|
|
||||||
<tr><td align="center"><br></td></tr>
|
|
||||||
<tr><td align="center"><img src="./glew.png" alt="GLEW Logo" width="97" height="75"></td></tr>
|
|
||||||
<tr><td align="center"><br></td></tr>
|
|
||||||
<tr><td align="center">
|
|
||||||
<table border="0" cellpadding="0" cellspacing="0" align="center">
|
|
||||||
<tr><td align="center"><a href="index.html">Download</a></td></tr>
|
|
||||||
<tr><td align="center"><a href="basic.html">Usage</a></td></tr>
|
|
||||||
<tr><td align="center">Building</td></tr>
|
|
||||||
<tr><td align="center"><a href="install.html">Installation</a></td></tr>
|
|
||||||
<tr><td align="center"><a href="advanced.html">Source Generation</a></td></tr>
|
|
||||||
<tr><td align="center"><a href="credits.html">Credits & Copyright</a></td></tr>
|
|
||||||
<tr><td align="center"><a href="log.html">Change Log</a></td></tr>
|
|
||||||
<tr></tr>
|
|
||||||
<tr><td align="center"><a href="https://github.com/nigels-com/glew">GitHub</a></td></tr>
|
|
||||||
<tr><td align="center"><a href="https://sourceforge.net/projects/glew">Project Page</a></td></tr>
|
|
||||||
<tr><td align="center"><a href="http://sourceforge.net/p/glew/bugs/">Bug Tracker</a></td></tr>
|
|
||||||
</table>
|
|
||||||
<tr><td align="center"><br></tr>
|
|
||||||
</table>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
|
|
||||||
<td valign="bottom">
|
|
||||||
<table border="0" width="100%" cellpadding="5" cellspacing="0" align="left">
|
|
||||||
<tr><td align="center"><i>Last Update: 08-10-15</i></td></tr>
|
|
||||||
<tr><td align="center">
|
|
||||||
<a href="http://www.opengl.org"><img src="./ogl_sm.jpg" width="68" height="35" border="0" alt="OpenGL Logo"></a><br/>
|
|
||||||
<a href="https://github.com/nigels-com/glew"><img src="github.png" width="70" height="29" border="0" alt="GitHub Logo"></a><br/>
|
|
||||||
<a href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=67586&type=1" width="88" height="31" border="0" alt="SourceForge Logo"></a>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</td>
|
|
||||||
|
|
||||||
<td bgcolor="#ffffff" align="left" valign="top">
|
|
||||||
|
|
||||||
<h1>The OpenGL Extension Wrangler Library</h1>
|
|
||||||
|
|
||||||
<!-- end header.html -->
|
|
||||||
|
|
||||||
|
|
||||||
<h2>Building GLEW</h2>
|
|
||||||
|
|
||||||
<h3>Windows</h3>
|
|
||||||
|
|
||||||
<p>A MS Visual Studio project is provided in the <tt>build/vc6</tt> directory.</p>
|
|
||||||
<p>Pre-built shared and static libraries are also available for <a href="index.html">download</a>.</p>
|
|
||||||
|
|
||||||
<h3>Makefile</h3>
|
|
||||||
|
|
||||||
<p>For platforms other than MS Windows, the provided <tt>Makefile</tt> is used.</p>
|
|
||||||
|
|
||||||
<h4>Command-line variables</h4>
|
|
||||||
|
|
||||||
<table border=0 cellpadding=0 cellspacing=10>
|
|
||||||
<tr><td valign=top><tt>SYSTEM</tt></td><td valign=top>auto</td>
|
|
||||||
<td align=left>Target system to build: darwin, linux, solaris, etc.<br/>For a full list of supported targets: <tt>ls config/Makefile.*</tt><br/>
|
|
||||||
<a href="http://git.savannah.gnu.org/gitweb/?p=config.git;a=tree">config.guess</a> is used to auto detect, as necessary.</td></tr>
|
|
||||||
<tr><td valign=top><tt>GLEW_DEST</tt></td><td valign=top><tt>/usr</tt></td>
|
|
||||||
<td align=left>Base directory for installation.</td></tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<h4>Make targets</h4>
|
|
||||||
|
|
||||||
<table border=0 cellpadding=0 cellspacing=10>
|
|
||||||
<tr><td valign=top><tt>all</tt></td><td>Build everything.</td><tr>
|
|
||||||
<tr><td valign=top><tt>glew.lib</tt></td><td>Build static and dynamic GLEW libraries.</td><tr>
|
|
||||||
<tr><td valign=top><tt>glew.lib.mx</tt></td><td>Build static and dynamic GLEWmx libraries.</td><tr>
|
|
||||||
<tr><td valign=top><tt>glew.bin</tt></td><td>Build <tt>glewinfo</tt> and <tt>visualinfo</tt> utilities.</td><tr>
|
|
||||||
<tr><td valign=top><tt>clean</tt></td><td>Delete temporary and built files.</td><tr>
|
|
||||||
<tr><td valign=top><tt>install.all</tt></td><td>Install everything.</td><tr>
|
|
||||||
<tr><td valign=top><tt>install</tt></td><td>Install GLEW libraries.</td><tr>
|
|
||||||
<tr><td valign=top><tt>install.mx</tt></td><td>Install GLEWmx libraries.</td><tr>
|
|
||||||
<tr><td valign=top><tt>install.bin</tt></td><td>Install <tt>glewinfo</tt> and <tt>visualinfo</tt> utilities.</td><tr>
|
|
||||||
<tr><td valign=top><tt>uninstall</tt></td><td>Delete installed files.</td><tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<h4>Requirements</h4>
|
|
||||||
|
|
||||||
<ul>
|
|
||||||
<li>GNU make</li>
|
|
||||||
<li>perl</li>
|
|
||||||
<li>wget</li>
|
|
||||||
<li>GNU sed</li>
|
|
||||||
<li>gcc compiler</li>
|
|
||||||
<li>git</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
Ubuntu: <pre>sudo apt-get install libXmu-dev libXi-dev libgl-dev dos2unix git wget</pre>
|
|
||||||
Fedora: <pre>sudo yum install libXmu-devel libXi-devel libGL-devel dos2unix git wget</pre>
|
|
||||||
<!-- begin footer.html -->
|
|
||||||
</td></tr></table></body>
|
|
||||||
<!-- end footer.html -->
|
|
||||||
|
|
||||||
@@ -1,123 +0,0 @@
|
|||||||
<!-- begin header.html -->
|
|
||||||
<!--
|
|
||||||
The OpenGL Extension Wrangler Library
|
|
||||||
Copyright (C) 2008-2015, Nigel Stewart <nigels[]users sourceforge net>
|
|
||||||
Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
|
|
||||||
Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
|
|
||||||
Copyright (C) 2002, Lev Povalahev
|
|
||||||
All rights reserved.
|
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
|
||||||
modification, are permitted provided that the following conditions are met:
|
|
||||||
|
|
||||||
* Redistributions of source code must retain the above copyright notice,
|
|
||||||
this list of conditions and the following disclaimer.
|
|
||||||
* Redistributions in binary form must reproduce the above copyright notice,
|
|
||||||
this list of conditions and the following disclaimer in the documentation
|
|
||||||
and/or other materials provided with the distribution.
|
|
||||||
* The name of the author may be used to endorse or promote products
|
|
||||||
derived from this software without specific prior written permission.
|
|
||||||
|
|
||||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
|
||||||
THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
-->
|
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html/4/loose.dtd">
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<title>GLEW: The OpenGL Extension Wrangler Library</title>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
|
||||||
<link href="glew.css" type="text/css" rel="stylesheet">
|
|
||||||
</head>
|
|
||||||
<body bgcolor="#fff0d0">
|
|
||||||
<table border="0" width="100%" cellpadding="12" cellspacing="8" style="height:100%">
|
|
||||||
<tr>
|
|
||||||
<td bgcolor="#ffffff" align="left" valign="top" width="200">
|
|
||||||
<table border="0" width="100%" cellpadding="0" cellspacing="0" align="left">
|
|
||||||
<tr>
|
|
||||||
<td valign="top">
|
|
||||||
|
|
||||||
<table border="0" width="100%" cellpadding="0" cellspacing="0" align="left">
|
|
||||||
<tr><td align="center"><i>Latest Release: <a href="https://sourceforge.net/projects/glew/files/glew/1.13.0/">1.13.0</a></i></td></tr>
|
|
||||||
<tr><td align="center"><br></td></tr>
|
|
||||||
<tr><td align="center"><img src="./glew.png" alt="GLEW Logo" width="97" height="75"></td></tr>
|
|
||||||
<tr><td align="center"><br></td></tr>
|
|
||||||
<tr><td align="center">
|
|
||||||
<table border="0" cellpadding="0" cellspacing="0" align="center">
|
|
||||||
<tr><td align="center"><a href="index.html">Download</a></td></tr>
|
|
||||||
<tr><td align="center"><a href="basic.html">Usage</a></td></tr>
|
|
||||||
<tr><td align="center"><a href="build.html">Building</a></td></tr>
|
|
||||||
<tr><td align="center"><a href="install.html">Installation</a></td></tr>
|
|
||||||
<tr><td align="center"><a href="advanced.html">Source Generation</a></td></tr>
|
|
||||||
<tr><td align="center">Credits & Copyright</td></tr>
|
|
||||||
<tr><td align="center"><a href="log.html">Change Log</a></td></tr>
|
|
||||||
<tr></tr>
|
|
||||||
<tr><td align="center"><a href="https://github.com/nigels-com/glew">GitHub</a></td></tr>
|
|
||||||
<tr><td align="center"><a href="https://sourceforge.net/projects/glew">Project Page</a></td></tr>
|
|
||||||
<tr><td align="center"><a href="http://sourceforge.net/p/glew/bugs/">Bug Tracker</a></td></tr>
|
|
||||||
</table>
|
|
||||||
<tr><td align="center"><br></tr>
|
|
||||||
</table>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
|
|
||||||
<td valign="bottom">
|
|
||||||
<table border="0" width="100%" cellpadding="5" cellspacing="0" align="left">
|
|
||||||
<tr><td align="center"><i>Last Update: 08-10-15</i></td></tr>
|
|
||||||
<tr><td align="center">
|
|
||||||
<a href="http://www.opengl.org"><img src="./ogl_sm.jpg" width="68" height="35" border="0" alt="OpenGL Logo"></a><br/>
|
|
||||||
<a href="https://github.com/nigels-com/glew"><img src="github.png" width="70" height="29" border="0" alt="GitHub Logo"></a><br/>
|
|
||||||
<a href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=67586&type=1" width="88" height="31" border="0" alt="SourceForge Logo"></a>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</td>
|
|
||||||
|
|
||||||
<td bgcolor="#ffffff" align="left" valign="top">
|
|
||||||
|
|
||||||
<h1>The OpenGL Extension Wrangler Library</h1>
|
|
||||||
|
|
||||||
<!-- end header.html -->
|
|
||||||
|
|
||||||
|
|
||||||
<h2>Credits</h2>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
GLEW was developed by <a href="http://www.cs.utah.edu/~ikits/">Milan
|
|
||||||
Ikits</a> and <a
|
|
||||||
href="http://wwwvis.informatik.uni-stuttgart.de/~magallon/">Marcelo
|
|
||||||
Magallon</a>. They also perform occasional maintainance to make sure
|
|
||||||
that GLEW stays in mint condition. Aaron Lefohn, Joe Kniss, and Chris
|
|
||||||
Wyman were the first users and also assisted with the design and
|
|
||||||
debugging process. The acronym GLEW originates from Aaron Lefohn.
|
|
||||||
Pasi Kärkkäinen identified and fixed several problems with
|
|
||||||
GLX and SDL. Nate Robins created the <tt>wglinfo</tt> utility, to
|
|
||||||
which modifications were made by Michael Wimmer.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h2>Copyright</h2>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
GLEW is originally derived from the EXTGL project by Lev Povalahev.
|
|
||||||
The source code is licensed under the <a href="glew.txt">Modified BSD
|
|
||||||
License</a>, the <a href="mesa.txt">Mesa 3-D License</a> (MIT
|
|
||||||
License), and the <a href="khronos.txt">Khronos License</a> (MIT
|
|
||||||
License). The automatic code generation scripts are released under
|
|
||||||
the <a href="gpl.txt">GNU GPL</a>.
|
|
||||||
</p>
|
|
||||||
<!-- begin footer.html -->
|
|
||||||
</td></tr></table></body>
|
|
||||||
<!-- end footer.html -->
|
|
||||||
|
|
||||||
BIN
kraken_win/3rdparty/glew/glew-1.13.0/doc/github.png
vendored
BIN
kraken_win/3rdparty/glew/glew-1.13.0/doc/github.png
vendored
Binary file not shown.
|
Before Width: | Height: | Size: 1.2 KiB |
187
kraken_win/3rdparty/glew/glew-1.13.0/doc/glew.css
vendored
187
kraken_win/3rdparty/glew/glew-1.13.0/doc/glew.css
vendored
@@ -1,187 +0,0 @@
|
|||||||
h1
|
|
||||||
{
|
|
||||||
color: black;
|
|
||||||
font: 23px "Verdana", "Arial", "Helvetica", sans-serif;
|
|
||||||
font-weight: bold;
|
|
||||||
text-align: center;
|
|
||||||
margin-top: 12px;
|
|
||||||
margin-bottom: 18px;
|
|
||||||
}
|
|
||||||
|
|
||||||
h2
|
|
||||||
{
|
|
||||||
color: black;
|
|
||||||
font: 18px "Verdana", "Arial", "Helvetica", sans-serif;
|
|
||||||
font-weight: bold;
|
|
||||||
text-align: left;
|
|
||||||
padding-top: 0px;
|
|
||||||
padding-bottom: 0px;
|
|
||||||
margin-top: 18px;
|
|
||||||
margin-bottom: 12px;
|
|
||||||
}
|
|
||||||
|
|
||||||
h3
|
|
||||||
{
|
|
||||||
color: black;
|
|
||||||
font: 17px "Verdana", "Arial", "Helvetica", sans-serif;
|
|
||||||
text-align: left;
|
|
||||||
padding-top: 0px;
|
|
||||||
padding-bottom: 0px;
|
|
||||||
margin-top: 12px;
|
|
||||||
margin-bottom: 12px;
|
|
||||||
}
|
|
||||||
|
|
||||||
small
|
|
||||||
{
|
|
||||||
font: 8pt "Verdana", "Arial", "Helvetica", sans-serif;
|
|
||||||
}
|
|
||||||
|
|
||||||
body
|
|
||||||
{
|
|
||||||
color: black;
|
|
||||||
font: 10pt "Verdana", "Arial", "Helvetica", sans-serif;
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
td
|
|
||||||
{
|
|
||||||
color: black;
|
|
||||||
font: 10pt "Verdana", "Arial", "Helvetica", sans-serif;
|
|
||||||
}
|
|
||||||
|
|
||||||
tt
|
|
||||||
{
|
|
||||||
color: rgb(0,120,0);
|
|
||||||
}
|
|
||||||
/* color: maroon; */
|
|
||||||
|
|
||||||
td.num
|
|
||||||
{
|
|
||||||
color: lightgrey;
|
|
||||||
font: 10pt "Verdana", "Arial", "Helvetica", sans-serif;
|
|
||||||
text-align: right;
|
|
||||||
}
|
|
||||||
|
|
||||||
blockquote
|
|
||||||
{
|
|
||||||
color: rgb(0,120,0);
|
|
||||||
background: #f0f0f0;
|
|
||||||
text-align: left;
|
|
||||||
margin-left: 40px;
|
|
||||||
margin-right: 40px;
|
|
||||||
margin-bottom: 6px;
|
|
||||||
padding-bottom: 0px;
|
|
||||||
margin-top: 0px;
|
|
||||||
padding-top: 0px;
|
|
||||||
border-top: 0px;
|
|
||||||
border-width: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
pre
|
|
||||||
{
|
|
||||||
color: rgb(0,120,0);
|
|
||||||
background: #f0f0f0;
|
|
||||||
text-align: left;
|
|
||||||
margin-left: 40px;
|
|
||||||
margin-right: 40px;
|
|
||||||
margin-bottom: 6px;
|
|
||||||
padding-bottom: 0px;
|
|
||||||
margin-top: 0px;
|
|
||||||
padding-top: 0px;
|
|
||||||
border-top: 0px;
|
|
||||||
border-width: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
p
|
|
||||||
{
|
|
||||||
color: black;
|
|
||||||
font: 10pt "Verdana", "Arial", "Helvetica", sans-serif;
|
|
||||||
text-align: left;
|
|
||||||
margin-bottom: 0px;
|
|
||||||
padding-bottom: 6px;
|
|
||||||
margin-top: 0px;
|
|
||||||
padding-top: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
p.right
|
|
||||||
{
|
|
||||||
color: black;
|
|
||||||
font: 10pt "Verdana", "Arial", "Helvetica", sans-serif;
|
|
||||||
text-align: right;
|
|
||||||
margin-bottom: 0px;
|
|
||||||
padding-bottom: 6px;
|
|
||||||
margin-top: 0px;
|
|
||||||
padding-top: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
p.pre
|
|
||||||
{
|
|
||||||
color: rgb(0,120,0);
|
|
||||||
font: 10pt "Courier New", "Courier", monospace;
|
|
||||||
background: #f0f0f0;
|
|
||||||
text-align: left;
|
|
||||||
margin-top: 0px;
|
|
||||||
margin-bottom: 6px;
|
|
||||||
margin-left: 40px;
|
|
||||||
margin-right: 40px;
|
|
||||||
padding-top: 0px;
|
|
||||||
padding-bottom: 6px;
|
|
||||||
padding-left: 6px;
|
|
||||||
padding-right: 6px;
|
|
||||||
border-top: 0px;
|
|
||||||
border-width: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
a:link
|
|
||||||
{
|
|
||||||
color: rgb(0,0,139);
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
a:visited
|
|
||||||
{
|
|
||||||
color: rgb(220,20,60);
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
a:hover
|
|
||||||
{
|
|
||||||
color: rgb(220,20,60);
|
|
||||||
text-decoration: underline;
|
|
||||||
background: "#e8e8e8";
|
|
||||||
}
|
|
||||||
|
|
||||||
ul
|
|
||||||
{
|
|
||||||
list-style-type: disc;
|
|
||||||
text-align: left;
|
|
||||||
margin-left: 40px;
|
|
||||||
margin-top: 0px;
|
|
||||||
padding-top: 0px;
|
|
||||||
margin-bottom: 0px;
|
|
||||||
padding-bottom: 3px;
|
|
||||||
}
|
|
||||||
|
|
||||||
ul.none
|
|
||||||
{
|
|
||||||
list-style-type: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
ol
|
|
||||||
{
|
|
||||||
text-align: left;
|
|
||||||
margin-left: 40px;
|
|
||||||
margin-top: 0px;
|
|
||||||
padding-top: 0px;
|
|
||||||
margin-bottom: 0px;
|
|
||||||
padding-bottom: 12px;
|
|
||||||
}
|
|
||||||
|
|
||||||
hr
|
|
||||||
{
|
|
||||||
color: maroon;
|
|
||||||
background-color: maroon;
|
|
||||||
height: 1px;
|
|
||||||
border: 0px;
|
|
||||||
width: 80%;
|
|
||||||
}
|
|
||||||
701
kraken_win/3rdparty/glew/glew-1.13.0/doc/glew.html
vendored
701
kraken_win/3rdparty/glew/glew-1.13.0/doc/glew.html
vendored
@@ -1,701 +0,0 @@
|
|||||||
<!-- begin header.html -->
|
|
||||||
<!--
|
|
||||||
The OpenGL Extension Wrangler Library
|
|
||||||
Copyright (C) 2008-2015, Nigel Stewart <nigels[]users sourceforge net>
|
|
||||||
Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
|
|
||||||
Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
|
|
||||||
Copyright (C) 2002, Lev Povalahev
|
|
||||||
All rights reserved.
|
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
|
||||||
modification, are permitted provided that the following conditions are met:
|
|
||||||
|
|
||||||
* Redistributions of source code must retain the above copyright notice,
|
|
||||||
this list of conditions and the following disclaimer.
|
|
||||||
* Redistributions in binary form must reproduce the above copyright notice,
|
|
||||||
this list of conditions and the following disclaimer in the documentation
|
|
||||||
and/or other materials provided with the distribution.
|
|
||||||
* The name of the author may be used to endorse or promote products
|
|
||||||
derived from this software without specific prior written permission.
|
|
||||||
|
|
||||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
|
||||||
THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
-->
|
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html/4/loose.dtd">
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<title>GLEW: The OpenGL Extension Wrangler Library</title>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
|
||||||
<link href="glew.css" type="text/css" rel="stylesheet">
|
|
||||||
</head>
|
|
||||||
<body bgcolor="#fff0d0">
|
|
||||||
<table border="0" width="100%" cellpadding="12" cellspacing="8" style="height:100%">
|
|
||||||
<tr>
|
|
||||||
<td bgcolor="#ffffff" align="left" valign="top" width="200">
|
|
||||||
<table border="0" width="100%" cellpadding="0" cellspacing="0" align="left">
|
|
||||||
<tr>
|
|
||||||
<td valign="top">
|
|
||||||
|
|
||||||
<table border="0" width="100%" cellpadding="0" cellspacing="0" align="left">
|
|
||||||
<tr><td align="center"><i>Latest Release: <a href="https://sourceforge.net/projects/glew/files/glew/1.13.0/">1.13.0</a></i></td></tr>
|
|
||||||
<tr><td align="center"><br></td></tr>
|
|
||||||
<tr><td align="center"><img src="./glew.png" alt="GLEW Logo" width="97" height="75"></td></tr>
|
|
||||||
<tr><td align="center"><br></td></tr>
|
|
||||||
<tr><td align="center">
|
|
||||||
<table border="0" cellpadding="0" cellspacing="0" align="center">
|
|
||||||
<tr><td align="center"><a href="index.html">Download</a></td></tr>
|
|
||||||
<tr><td align="center"><a href="basic.html">Usage</a></td></tr>
|
|
||||||
<tr><td align="center"><a href="build.html">Building</a></td></tr>
|
|
||||||
<tr><td align="center"><a href="install.html">Installation</a></td></tr>
|
|
||||||
<tr><td align="center"><a href="advanced.html">Source Generation</a></td></tr>
|
|
||||||
<tr><td align="center"><a href="credits.html">Credits & Copyright</a></td></tr>
|
|
||||||
<tr><td align="center"><a href="log.html">Change Log</a></td></tr>
|
|
||||||
<tr></tr>
|
|
||||||
<tr><td align="center"><a href="https://github.com/nigels-com/glew">GitHub</a></td></tr>
|
|
||||||
<tr><td align="center"><a href="https://sourceforge.net/projects/glew">Project Page</a></td></tr>
|
|
||||||
<tr><td align="center"><a href="http://sourceforge.net/p/glew/bugs/">Bug Tracker</a></td></tr>
|
|
||||||
</table>
|
|
||||||
<tr><td align="center"><br></tr>
|
|
||||||
</table>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
|
|
||||||
<td valign="bottom">
|
|
||||||
<table border="0" width="100%" cellpadding="5" cellspacing="0" align="left">
|
|
||||||
<tr><td align="center"><i>Last Update: 08-10-15</i></td></tr>
|
|
||||||
<tr><td align="center">
|
|
||||||
<a href="http://www.opengl.org"><img src="./ogl_sm.jpg" width="68" height="35" border="0" alt="OpenGL Logo"></a><br/>
|
|
||||||
<a href="https://github.com/nigels-com/glew"><img src="github.png" width="70" height="29" border="0" alt="GitHub Logo"></a><br/>
|
|
||||||
<a href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=67586&type=1" width="88" height="31" border="0" alt="SourceForge Logo"></a>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</td>
|
|
||||||
|
|
||||||
<td bgcolor="#ffffff" align="left" valign="top">
|
|
||||||
|
|
||||||
<h1>The OpenGL Extension Wrangler Library</h1>
|
|
||||||
|
|
||||||
<!-- end header.html -->
|
|
||||||
|
|
||||||
|
|
||||||
<h2>Supported OpenGL Extensions</h2>
|
|
||||||
|
|
||||||
<table border="0" width="100%" cellpadding="1" cellspacing="0" align="center">
|
|
||||||
<tr><td class="num">1</td><td> </td><td><a href="http://www.opengl.org/registry/specs/3DFX/3dfx_multisample.txt">3DFX_multisample</a></td></tr>
|
|
||||||
<tr><td class="num">2</td><td> </td><td><a href="http://www.opengl.org/registry/specs/3DFX/tbuffer.txt">3DFX_tbuffer</a></td></tr>
|
|
||||||
<tr><td class="num">3</td><td> </td><td><a href="http://www.opengl.org/registry/specs/3DFX/texture_compression_FXT1.txt">3DFX_texture_compression_FXT1</a></td></tr>
|
|
||||||
<tr><td><br></td><td></td><td></td></tr>
|
|
||||||
<tr><td class="num">4</td><td> </td><td><a href="http://www.opengl.org/registry/specs/AMD/blend_minmax_factor.txt">AMD_blend_minmax_factor</a></td></tr>
|
|
||||||
<tr><td class="num">5</td><td> </td><td><a href="http://www.opengl.org/registry/specs/AMD/conservative_depth.txt">AMD_conservative_depth</a></td></tr>
|
|
||||||
<tr><td class="num">6</td><td> </td><td><a href="http://www.opengl.org/registry/specs/AMD/debug_output.txt">AMD_debug_output</a></td></tr>
|
|
||||||
<tr><td class="num">7</td><td> </td><td><a href="http://www.opengl.org/registry/specs/AMD/depth_clamp_separate.txt">AMD_depth_clamp_separate</a></td></tr>
|
|
||||||
<tr><td class="num">8</td><td> </td><td><a href="http://www.opengl.org/registry/specs/AMD/draw_buffers_blend.txt">AMD_draw_buffers_blend</a></td></tr>
|
|
||||||
<tr><td class="num">9</td><td> </td><td><a href="http://www.opengl.org/registry/specs/AMD/gcn_shader.txt">AMD_gcn_shader</a></td></tr>
|
|
||||||
<tr><td class="num">10</td><td> </td><td><a href="http://www.opengl.org/registry/specs/AMD/gpu_shader_int64.txt">AMD_gpu_shader_int64</a></td></tr>
|
|
||||||
<tr><td class="num">11</td><td> </td><td><a href="http://www.opengl.org/registry/specs/AMD/interleaved_elements.txt">AMD_interleaved_elements</a></td></tr>
|
|
||||||
<tr><td class="num">12</td><td> </td><td><a href="http://www.opengl.org/registry/specs/AMD/multi_draw_indirect.txt">AMD_multi_draw_indirect</a></td></tr>
|
|
||||||
<tr><td class="num">13</td><td> </td><td><a href="http://www.opengl.org/registry/specs/AMD/name_gen_delete.txt">AMD_name_gen_delete</a></td></tr>
|
|
||||||
<tr><td class="num">14</td><td> </td><td><a href="http://www.opengl.org/registry/specs/AMD/occlusion_query_event.txt">AMD_occlusion_query_event</a></td></tr>
|
|
||||||
<tr><td class="num">15</td><td> </td><td><a href="http://www.opengl.org/registry/specs/AMD/performance_monitor.txt">AMD_performance_monitor</a></td></tr>
|
|
||||||
<tr><td class="num">16</td><td> </td><td><a href="http://www.opengl.org/registry/specs/AMD/pinned_memory.txt">AMD_pinned_memory</a></td></tr>
|
|
||||||
<tr><td class="num">17</td><td> </td><td><a href="http://www.opengl.org/registry/specs/AMD/query_buffer_object.txt">AMD_query_buffer_object</a></td></tr>
|
|
||||||
<tr><td class="num">18</td><td> </td><td><a href="http://www.opengl.org/registry/specs/AMD/sample_positions.txt">AMD_sample_positions</a></td></tr>
|
|
||||||
<tr><td class="num">19</td><td> </td><td><a href="http://www.opengl.org/registry/specs/AMD/seamless_cubemap_per_texture.txt">AMD_seamless_cubemap_per_texture</a></td></tr>
|
|
||||||
<tr><td class="num">20</td><td> </td><td><a href="http://www.opengl.org/registry/specs/AMD/shader_atomic_counter_ops.txt">AMD_shader_atomic_counter_ops</a></td></tr>
|
|
||||||
<tr><td class="num">21</td><td> </td><td><a href="http://www.opengl.org/registry/specs/AMD/shader_stencil_export.txt">AMD_shader_stencil_export</a></td></tr>
|
|
||||||
<tr><td class="num">22</td><td> </td><td><a href="http://www.opengl.org/registry/specs/AMD/shader_stencil_value_export.txt">AMD_shader_stencil_value_export</a></td></tr>
|
|
||||||
<tr><td class="num">23</td><td> </td><td><a href="http://www.opengl.org/registry/specs/AMD/shader_trinary_minmax.txt">AMD_shader_trinary_minmax</a></td></tr>
|
|
||||||
<tr><td class="num">24</td><td> </td><td><a href="http://www.opengl.org/registry/specs/AMD/sparse_texture.txt">AMD_sparse_texture</a></td></tr>
|
|
||||||
<tr><td class="num">25</td><td> </td><td><a href="http://www.opengl.org/registry/specs/AMD/stencil_operation_extended.txt">AMD_stencil_operation_extended</a></td></tr>
|
|
||||||
<tr><td class="num">26</td><td> </td><td><a href="http://www.opengl.org/registry/specs/AMD/texture_texture4.txt">AMD_texture_texture4</a></td></tr>
|
|
||||||
<tr><td class="num">27</td><td> </td><td><a href="http://www.opengl.org/registry/specs/AMD/transform_feedback3_lines_triangles.txt">AMD_transform_feedback3_lines_triangles</a></td></tr>
|
|
||||||
<tr><td class="num">28</td><td> </td><td><a href="http://www.opengl.org/registry/specs/AMD/transform_feedback4.txt">AMD_transform_feedback4</a></td></tr>
|
|
||||||
<tr><td class="num">29</td><td> </td><td><a href="http://www.opengl.org/registry/specs/AMD/vertex_shader_layer.txt">AMD_vertex_shader_layer</a></td></tr>
|
|
||||||
<tr><td class="num">30</td><td> </td><td><a href="http://www.opengl.org/registry/specs/AMD/vertex_shader_tessellator.txt">AMD_vertex_shader_tessellator</a></td></tr>
|
|
||||||
<tr><td class="num">31</td><td> </td><td><a href="http://www.opengl.org/registry/specs/AMD/vertex_shader_viewport_index.txt">AMD_vertex_shader_viewport_index</a></td></tr>
|
|
||||||
<tr><td><br></td><td></td><td></td></tr>
|
|
||||||
<tr><td class="num">32</td><td> </td><td><a href="https://code.google.com/p/angleproject/source/browse/#git%2Fextensions">ANGLE_depth_texture</a></td></tr>
|
|
||||||
<tr><td class="num">33</td><td> </td><td><a href="https://code.google.com/p/angleproject/source/browse/#git%2Fextensions">ANGLE_framebuffer_blit</a></td></tr>
|
|
||||||
<tr><td class="num">34</td><td> </td><td><a href="https://code.google.com/p/angleproject/source/browse/#git%2Fextensions">ANGLE_framebuffer_multisample</a></td></tr>
|
|
||||||
<tr><td class="num">35</td><td> </td><td><a href="https://code.google.com/p/angleproject/source/browse/#git%2Fextensions">ANGLE_instanced_arrays</a></td></tr>
|
|
||||||
<tr><td class="num">36</td><td> </td><td><a href="https://code.google.com/p/angleproject/source/browse/#git%2Fextensions">ANGLE_pack_reverse_row_order</a></td></tr>
|
|
||||||
<tr><td class="num">37</td><td> </td><td><a href="https://code.google.com/p/angleproject/source/browse/#git%2Fextensions">ANGLE_program_binary</a></td></tr>
|
|
||||||
<tr><td class="num">38</td><td> </td><td><a href="https://code.google.com/p/angleproject/source/browse/#git%2Fextensions">ANGLE_texture_compression_dxt1</a></td></tr>
|
|
||||||
<tr><td class="num">39</td><td> </td><td><a href="https://code.google.com/p/angleproject/source/browse/#git%2Fextensions">ANGLE_texture_compression_dxt3</a></td></tr>
|
|
||||||
<tr><td class="num">40</td><td> </td><td><a href="https://code.google.com/p/angleproject/source/browse/#git%2Fextensions">ANGLE_texture_compression_dxt5</a></td></tr>
|
|
||||||
<tr><td class="num">41</td><td> </td><td><a href="https://code.google.com/p/angleproject/source/browse/#git%2Fextensions">ANGLE_texture_usage</a></td></tr>
|
|
||||||
<tr><td class="num">42</td><td> </td><td><a href="https://code.google.com/p/angleproject/source/browse/#git%2Fextensions">ANGLE_timer_query</a></td></tr>
|
|
||||||
<tr><td class="num">43</td><td> </td><td><a href="https://code.google.com/p/angleproject/source/browse/#git%2Fextensions">ANGLE_translated_shader_source</a></td></tr>
|
|
||||||
<tr><td><br></td><td></td><td></td></tr>
|
|
||||||
<tr><td class="num">44</td><td> </td><td><a href="http://www.opengl.org/registry/specs/APPLE/aux_depth_stencil.txt">APPLE_aux_depth_stencil</a></td></tr>
|
|
||||||
<tr><td class="num">45</td><td> </td><td><a href="http://www.opengl.org/registry/specs/APPLE/client_storage.txt">APPLE_client_storage</a></td></tr>
|
|
||||||
<tr><td class="num">46</td><td> </td><td><a href="http://www.opengl.org/registry/specs/APPLE/element_array.txt">APPLE_element_array</a></td></tr>
|
|
||||||
<tr><td class="num">47</td><td> </td><td><a href="http://www.opengl.org/registry/specs/APPLE/fence.txt">APPLE_fence</a></td></tr>
|
|
||||||
<tr><td class="num">48</td><td> </td><td><a href="http://www.opengl.org/registry/specs/APPLE/float_pixels.txt">APPLE_float_pixels</a></td></tr>
|
|
||||||
<tr><td class="num">49</td><td> </td><td><a href="http://www.opengl.org/registry/specs/APPLE/flush_buffer_range.txt">APPLE_flush_buffer_range</a></td></tr>
|
|
||||||
<tr><td class="num">50</td><td> </td><td><a href="http://www.opengl.org/registry/specs/APPLE/object_purgeable.txt">APPLE_object_purgeable</a></td></tr>
|
|
||||||
<tr><td class="num">51</td><td> </td><td>APPLE_pixel_buffer</td></tr>
|
|
||||||
<tr><td class="num">52</td><td> </td><td><a href="http://www.opengl.org/registry/specs/APPLE/rgb_422.txt">APPLE_rgb_422</a></td></tr>
|
|
||||||
<tr><td class="num">53</td><td> </td><td><a href="http://www.opengl.org/registry/specs/APPLE/row_bytes.txt">APPLE_row_bytes</a></td></tr>
|
|
||||||
<tr><td class="num">54</td><td> </td><td><a href="http://www.opengl.org/registry/specs/APPLE/specular_vector.txt">APPLE_specular_vector</a></td></tr>
|
|
||||||
<tr><td class="num">55</td><td> </td><td><a href="http://www.opengl.org/registry/specs/APPLE/texture_range.txt">APPLE_texture_range</a></td></tr>
|
|
||||||
<tr><td class="num">56</td><td> </td><td><a href="http://www.opengl.org/registry/specs/APPLE/transform_hint.txt">APPLE_transform_hint</a></td></tr>
|
|
||||||
<tr><td class="num">57</td><td> </td><td><a href="http://www.opengl.org/registry/specs/APPLE/vertex_array_object.txt">APPLE_vertex_array_object</a></td></tr>
|
|
||||||
<tr><td class="num">58</td><td> </td><td><a href="http://www.opengl.org/registry/specs/APPLE/vertex_array_range.txt">APPLE_vertex_array_range</a></td></tr>
|
|
||||||
<tr><td class="num">59</td><td> </td><td><a href="http://www.opengl.org/registry/specs/APPLE/vertex_program_evaluators.txt">APPLE_vertex_program_evaluators</a></td></tr>
|
|
||||||
<tr><td class="num">60</td><td> </td><td><a href="http://www.opengl.org/registry/specs/APPLE/ycbcr_422.txt">APPLE_ycbcr_422</a></td></tr>
|
|
||||||
<tr><td><br></td><td></td><td></td></tr>
|
|
||||||
<tr><td class="num">61</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/ES2_compatibility.txt">ARB_ES2_compatibility</a></td></tr>
|
|
||||||
<tr><td class="num">62</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/ES3_1_compatibility.txt">ARB_ES3_1_compatibility</a></td></tr>
|
|
||||||
<tr><td class="num">63</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/ES3_2_compatibility.txt">ARB_ES3_2_compatibility</a></td></tr>
|
|
||||||
<tr><td class="num">64</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/ES3_compatibility.txt">ARB_ES3_compatibility</a></td></tr>
|
|
||||||
<tr><td class="num">65</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/arrays_of_arrays.txt">ARB_arrays_of_arrays</a></td></tr>
|
|
||||||
<tr><td class="num">66</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/base_instance.txt">ARB_base_instance</a></td></tr>
|
|
||||||
<tr><td class="num">67</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/bindless_texture.txt">ARB_bindless_texture</a></td></tr>
|
|
||||||
<tr><td class="num">68</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/blend_func_extended.txt">ARB_blend_func_extended</a></td></tr>
|
|
||||||
<tr><td class="num">69</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/buffer_storage.txt">ARB_buffer_storage</a></td></tr>
|
|
||||||
<tr><td class="num">70</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/cl_event.txt">ARB_cl_event</a></td></tr>
|
|
||||||
<tr><td class="num">71</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/clear_buffer_object.txt">ARB_clear_buffer_object</a></td></tr>
|
|
||||||
<tr><td class="num">72</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/clear_texture.txt">ARB_clear_texture</a></td></tr>
|
|
||||||
<tr><td class="num">73</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/clip_control.txt">ARB_clip_control</a></td></tr>
|
|
||||||
<tr><td class="num">74</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/color_buffer_float.txt">ARB_color_buffer_float</a></td></tr>
|
|
||||||
<tr><td class="num">75</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/compatibility.txt">ARB_compatibility</a></td></tr>
|
|
||||||
<tr><td class="num">76</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/compressed_texture_pixel_storage.txt">ARB_compressed_texture_pixel_storage</a></td></tr>
|
|
||||||
<tr><td class="num">77</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/compute_shader.txt">ARB_compute_shader</a></td></tr>
|
|
||||||
<tr><td class="num">78</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/compute_variable_group_size.txt">ARB_compute_variable_group_size</a></td></tr>
|
|
||||||
<tr><td class="num">79</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/conditional_render_inverted.txt">ARB_conditional_render_inverted</a></td></tr>
|
|
||||||
<tr><td class="num">80</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/conservative_depth.txt">ARB_conservative_depth</a></td></tr>
|
|
||||||
<tr><td class="num">81</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/copy_buffer.txt">ARB_copy_buffer</a></td></tr>
|
|
||||||
<tr><td class="num">82</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/copy_image.txt">ARB_copy_image</a></td></tr>
|
|
||||||
<tr><td class="num">83</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/cull_distance.txt">ARB_cull_distance</a></td></tr>
|
|
||||||
<tr><td class="num">84</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/debug_output.txt">ARB_debug_output</a></td></tr>
|
|
||||||
<tr><td class="num">85</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/depth_buffer_float.txt">ARB_depth_buffer_float</a></td></tr>
|
|
||||||
<tr><td class="num">86</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/depth_clamp.txt">ARB_depth_clamp</a></td></tr>
|
|
||||||
<tr><td class="num">87</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/depth_texture.txt">ARB_depth_texture</a></td></tr>
|
|
||||||
<tr><td class="num">88</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/derivative_control.txt">ARB_derivative_control</a></td></tr>
|
|
||||||
<tr><td class="num">89</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/direct_state_access.txt">ARB_direct_state_access</a></td></tr>
|
|
||||||
<tr><td class="num">90</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/draw_buffers.txt">ARB_draw_buffers</a></td></tr>
|
|
||||||
<tr><td class="num">91</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/draw_buffers_blend.txt">ARB_draw_buffers_blend</a></td></tr>
|
|
||||||
<tr><td class="num">92</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/draw_elements_base_vertex.txt">ARB_draw_elements_base_vertex</a></td></tr>
|
|
||||||
<tr><td class="num">93</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/draw_indirect.txt">ARB_draw_indirect</a></td></tr>
|
|
||||||
<tr><td class="num">94</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/draw_instanced.txt">ARB_draw_instanced</a></td></tr>
|
|
||||||
<tr><td class="num">95</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/enhanced_layouts.txt">ARB_enhanced_layouts</a></td></tr>
|
|
||||||
<tr><td class="num">96</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/explicit_attrib_location.txt">ARB_explicit_attrib_location</a></td></tr>
|
|
||||||
<tr><td class="num">97</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/explicit_uniform_location.txt">ARB_explicit_uniform_location</a></td></tr>
|
|
||||||
<tr><td class="num">98</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/fragment_coord_conventions.txt">ARB_fragment_coord_conventions</a></td></tr>
|
|
||||||
<tr><td class="num">99</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/fragment_layer_viewport.txt">ARB_fragment_layer_viewport</a></td></tr>
|
|
||||||
<tr><td class="num">100</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/fragment_program.txt">ARB_fragment_program</a></td></tr>
|
|
||||||
<tr><td class="num">101</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/fragment_program_shadow.txt">ARB_fragment_program_shadow</a></td></tr>
|
|
||||||
<tr><td class="num">102</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/fragment_shader.txt">ARB_fragment_shader</a></td></tr>
|
|
||||||
<tr><td class="num">103</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/fragment_shader_interlock.txt">ARB_fragment_shader_interlock</a></td></tr>
|
|
||||||
<tr><td class="num">104</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/framebuffer_no_attachments.txt">ARB_framebuffer_no_attachments</a></td></tr>
|
|
||||||
<tr><td class="num">105</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/framebuffer_object.txt">ARB_framebuffer_object</a></td></tr>
|
|
||||||
<tr><td class="num">106</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/framebuffer_sRGB.txt">ARB_framebuffer_sRGB</a></td></tr>
|
|
||||||
<tr><td class="num">107</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/geometry_shader4.txt">ARB_geometry_shader4</a></td></tr>
|
|
||||||
<tr><td class="num">108</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/get_program_binary.txt">ARB_get_program_binary</a></td></tr>
|
|
||||||
<tr><td class="num">109</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/get_texture_sub_image.txt">ARB_get_texture_sub_image</a></td></tr>
|
|
||||||
<tr><td class="num">110</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/gpu_shader5.txt">ARB_gpu_shader5</a></td></tr>
|
|
||||||
<tr><td class="num">111</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt">ARB_gpu_shader_fp64</a></td></tr>
|
|
||||||
<tr><td class="num">112</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/gpu_shader_int64.txt">ARB_gpu_shader_int64</a></td></tr>
|
|
||||||
<tr><td class="num">113</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/half_float_pixel.txt">ARB_half_float_pixel</a></td></tr>
|
|
||||||
<tr><td class="num">114</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/half_float_vertex.txt">ARB_half_float_vertex</a></td></tr>
|
|
||||||
<tr><td class="num">115</td><td> </td><td>ARB_imaging</td></tr>
|
|
||||||
<tr><td class="num">116</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/indirect_parameters.txt">ARB_indirect_parameters</a></td></tr>
|
|
||||||
<tr><td class="num">117</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/instanced_arrays.txt">ARB_instanced_arrays</a></td></tr>
|
|
||||||
<tr><td class="num">118</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/internalformat_query.txt">ARB_internalformat_query</a></td></tr>
|
|
||||||
<tr><td class="num">119</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/internalformat_query2.txt">ARB_internalformat_query2</a></td></tr>
|
|
||||||
<tr><td class="num">120</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/invalidate_subdata.txt">ARB_invalidate_subdata</a></td></tr>
|
|
||||||
<tr><td class="num">121</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/map_buffer_alignment.txt">ARB_map_buffer_alignment</a></td></tr>
|
|
||||||
<tr><td class="num">122</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/map_buffer_range.txt">ARB_map_buffer_range</a></td></tr>
|
|
||||||
<tr><td class="num">123</td><td> </td><td><a href="http://oss.sgi.com/projects/ogl-sample/registry/ARB/matrix_palette.txt">ARB_matrix_palette</a></td></tr>
|
|
||||||
<tr><td class="num">124</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/multi_bind.txt">ARB_multi_bind</a></td></tr>
|
|
||||||
<tr><td class="num">125</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/multi_draw_indirect.txt">ARB_multi_draw_indirect</a></td></tr>
|
|
||||||
<tr><td class="num">126</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/multisample.txt">ARB_multisample</a></td></tr>
|
|
||||||
<tr><td class="num">127</td><td> </td><td><a href="http://oss.sgi.com/projects/ogl-sample/registry/ARB/multitexture.txt">ARB_multitexture</a></td></tr>
|
|
||||||
<tr><td class="num">128</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/occlusion_query.txt">ARB_occlusion_query</a></td></tr>
|
|
||||||
<tr><td class="num">129</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/occlusion_query2.txt">ARB_occlusion_query2</a></td></tr>
|
|
||||||
<tr><td class="num">130</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/parallel_shader_compile.txt">ARB_parallel_shader_compile</a></td></tr>
|
|
||||||
<tr><td class="num">131</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/pipeline_statistics_query.txt">ARB_pipeline_statistics_query</a></td></tr>
|
|
||||||
<tr><td class="num">132</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/pixel_buffer_object.txt">ARB_pixel_buffer_object</a></td></tr>
|
|
||||||
<tr><td class="num">133</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/point_parameters.txt">ARB_point_parameters</a></td></tr>
|
|
||||||
<tr><td class="num">134</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/point_sprite.txt">ARB_point_sprite</a></td></tr>
|
|
||||||
<tr><td class="num">135</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/post_depth_coverage.txt">ARB_post_depth_coverage</a></td></tr>
|
|
||||||
<tr><td class="num">136</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/program_interface_query.txt">ARB_program_interface_query</a></td></tr>
|
|
||||||
<tr><td class="num">137</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/provoking_vertex.txt">ARB_provoking_vertex</a></td></tr>
|
|
||||||
<tr><td class="num">138</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/query_buffer_object.txt">ARB_query_buffer_object</a></td></tr>
|
|
||||||
<tr><td class="num">139</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/robust_buffer_access_behavior.txt">ARB_robust_buffer_access_behavior</a></td></tr>
|
|
||||||
<tr><td class="num">140</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/robustness.txt">ARB_robustness</a></td></tr>
|
|
||||||
<tr><td class="num">141</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/robustness_isolation.txt">ARB_robustness_application_isolation</a></td></tr>
|
|
||||||
<tr><td class="num">142</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/robustness_isolation.txt">ARB_robustness_share_group_isolation</a></td></tr>
|
|
||||||
<tr><td class="num">143</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/sample_locations.txt">ARB_sample_locations</a></td></tr>
|
|
||||||
<tr><td class="num">144</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/sample_shading.txt">ARB_sample_shading</a></td></tr>
|
|
||||||
<tr><td class="num">145</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/sampler_objects.txt">ARB_sampler_objects</a></td></tr>
|
|
||||||
<tr><td class="num">146</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/seamless_cube_map.txt">ARB_seamless_cube_map</a></td></tr>
|
|
||||||
<tr><td class="num">147</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/seamless_cubemap_per_texture.txt">ARB_seamless_cubemap_per_texture</a></td></tr>
|
|
||||||
<tr><td class="num">148</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt">ARB_separate_shader_objects</a></td></tr>
|
|
||||||
<tr><td class="num">149</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/shader_atomic_counter_ops.txt">ARB_shader_atomic_counter_ops</a></td></tr>
|
|
||||||
<tr><td class="num">150</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/shader_atomic_counters.txt">ARB_shader_atomic_counters</a></td></tr>
|
|
||||||
<tr><td class="num">151</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/shader_ballot.txt">ARB_shader_ballot</a></td></tr>
|
|
||||||
<tr><td class="num">152</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/shader_bit_encoding.txt">ARB_shader_bit_encoding</a></td></tr>
|
|
||||||
<tr><td class="num">153</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/shader_clock.txt">ARB_shader_clock</a></td></tr>
|
|
||||||
<tr><td class="num">154</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/shader_draw_parameters.txt">ARB_shader_draw_parameters</a></td></tr>
|
|
||||||
<tr><td class="num">155</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/shader_group_vote.txt">ARB_shader_group_vote</a></td></tr>
|
|
||||||
<tr><td class="num">156</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/shader_image_load_store.txt">ARB_shader_image_load_store</a></td></tr>
|
|
||||||
<tr><td class="num">157</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/shader_image_size.txt">ARB_shader_image_size</a></td></tr>
|
|
||||||
<tr><td class="num">158</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/shader_objects.txt">ARB_shader_objects</a></td></tr>
|
|
||||||
<tr><td class="num">159</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/shader_precision.txt">ARB_shader_precision</a></td></tr>
|
|
||||||
<tr><td class="num">160</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/shader_stencil_export.txt">ARB_shader_stencil_export</a></td></tr>
|
|
||||||
<tr><td class="num">161</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/shader_storage_buffer_object.txt">ARB_shader_storage_buffer_object</a></td></tr>
|
|
||||||
<tr><td class="num">162</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/shader_subroutine.txt">ARB_shader_subroutine</a></td></tr>
|
|
||||||
<tr><td class="num">163</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/shader_texture_image_samples.txt">ARB_shader_texture_image_samples</a></td></tr>
|
|
||||||
<tr><td class="num">164</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/shader_texture_lod.txt">ARB_shader_texture_lod</a></td></tr>
|
|
||||||
<tr><td class="num">165</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/shader_viewport_layer_array.txt">ARB_shader_viewport_layer_array</a></td></tr>
|
|
||||||
<tr><td class="num">166</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/shading_language_100.txt">ARB_shading_language_100</a></td></tr>
|
|
||||||
<tr><td class="num">167</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/shading_language_420pack.txt">ARB_shading_language_420pack</a></td></tr>
|
|
||||||
<tr><td class="num">168</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/shading_language_include.txt">ARB_shading_language_include</a></td></tr>
|
|
||||||
<tr><td class="num">169</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/shading_language_packing.txt">ARB_shading_language_packing</a></td></tr>
|
|
||||||
<tr><td class="num">170</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/shadow.txt">ARB_shadow</a></td></tr>
|
|
||||||
<tr><td class="num">171</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/shadow_ambient.txt">ARB_shadow_ambient</a></td></tr>
|
|
||||||
<tr><td class="num">172</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/sparse_buffer.txt">ARB_sparse_buffer</a></td></tr>
|
|
||||||
<tr><td class="num">173</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/sparse_texture.txt">ARB_sparse_texture</a></td></tr>
|
|
||||||
<tr><td class="num">174</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/sparse_texture2.txt">ARB_sparse_texture2</a></td></tr>
|
|
||||||
<tr><td class="num">175</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/sparse_texture_clamp.txt">ARB_sparse_texture_clamp</a></td></tr>
|
|
||||||
<tr><td class="num">176</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/stencil_texturing.txt">ARB_stencil_texturing</a></td></tr>
|
|
||||||
<tr><td class="num">177</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/sync.txt">ARB_sync</a></td></tr>
|
|
||||||
<tr><td class="num">178</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/tessellation_shader.txt">ARB_tessellation_shader</a></td></tr>
|
|
||||||
<tr><td class="num">179</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/texture_barrier.txt">ARB_texture_barrier</a></td></tr>
|
|
||||||
<tr><td class="num">180</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/texture_border_clamp.txt">ARB_texture_border_clamp</a></td></tr>
|
|
||||||
<tr><td class="num">181</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/texture_buffer_object.txt">ARB_texture_buffer_object</a></td></tr>
|
|
||||||
<tr><td class="num">182</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/texture_buffer_object_rgb32.txt">ARB_texture_buffer_object_rgb32</a></td></tr>
|
|
||||||
<tr><td class="num">183</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/texture_buffer_range.txt">ARB_texture_buffer_range</a></td></tr>
|
|
||||||
<tr><td class="num">184</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/texture_compression.txt">ARB_texture_compression</a></td></tr>
|
|
||||||
<tr><td class="num">185</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/texture_compression_bptc.txt">ARB_texture_compression_bptc</a></td></tr>
|
|
||||||
<tr><td class="num">186</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/texture_compression_rgtc.txt">ARB_texture_compression_rgtc</a></td></tr>
|
|
||||||
<tr><td class="num">187</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/texture_cube_map.txt">ARB_texture_cube_map</a></td></tr>
|
|
||||||
<tr><td class="num">188</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/texture_cube_map_array.txt">ARB_texture_cube_map_array</a></td></tr>
|
|
||||||
<tr><td class="num">189</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/texture_env_add.txt">ARB_texture_env_add</a></td></tr>
|
|
||||||
<tr><td class="num">190</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/texture_env_combine.txt">ARB_texture_env_combine</a></td></tr>
|
|
||||||
<tr><td class="num">191</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/texture_env_crossbar.txt">ARB_texture_env_crossbar</a></td></tr>
|
|
||||||
<tr><td class="num">192</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/texture_env_dot3.txt">ARB_texture_env_dot3</a></td></tr>
|
|
||||||
<tr><td class="num">193</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/texture_filter_minmax.txt">ARB_texture_filter_minmax</a></td></tr>
|
|
||||||
<tr><td class="num">194</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/texture_float.txt">ARB_texture_float</a></td></tr>
|
|
||||||
<tr><td class="num">195</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/texture_gather.txt">ARB_texture_gather</a></td></tr>
|
|
||||||
<tr><td class="num">196</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/texture_mirror_clamp_to_edge.txt">ARB_texture_mirror_clamp_to_edge</a></td></tr>
|
|
||||||
<tr><td class="num">197</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/texture_mirrored_repeat.txt">ARB_texture_mirrored_repeat</a></td></tr>
|
|
||||||
<tr><td class="num">198</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/texture_multisample.txt">ARB_texture_multisample</a></td></tr>
|
|
||||||
<tr><td class="num">199</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/texture_non_power_of_two.txt">ARB_texture_non_power_of_two</a></td></tr>
|
|
||||||
<tr><td class="num">200</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/texture_query_levels.txt">ARB_texture_query_levels</a></td></tr>
|
|
||||||
<tr><td class="num">201</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/texture_query_lod.txt">ARB_texture_query_lod</a></td></tr>
|
|
||||||
<tr><td class="num">202</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/texture_rectangle.txt">ARB_texture_rectangle</a></td></tr>
|
|
||||||
<tr><td class="num">203</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/texture_rg.txt">ARB_texture_rg</a></td></tr>
|
|
||||||
<tr><td class="num">204</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/texture_rgb10_a2ui.txt">ARB_texture_rgb10_a2ui</a></td></tr>
|
|
||||||
<tr><td class="num">205</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/texture_stencil8.txt">ARB_texture_stencil8</a></td></tr>
|
|
||||||
<tr><td class="num">206</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/texture_storage.txt">ARB_texture_storage</a></td></tr>
|
|
||||||
<tr><td class="num">207</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/texture_storage_multisample.txt">ARB_texture_storage_multisample</a></td></tr>
|
|
||||||
<tr><td class="num">208</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/texture_swizzle.txt">ARB_texture_swizzle</a></td></tr>
|
|
||||||
<tr><td class="num">209</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/texture_view.txt">ARB_texture_view</a></td></tr>
|
|
||||||
<tr><td class="num">210</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/timer_query.txt">ARB_timer_query</a></td></tr>
|
|
||||||
<tr><td class="num">211</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/transform_feedback2.txt">ARB_transform_feedback2</a></td></tr>
|
|
||||||
<tr><td class="num">212</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/transform_feedback3.txt">ARB_transform_feedback3</a></td></tr>
|
|
||||||
<tr><td class="num">213</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/transform_feedback_instanced.txt">ARB_transform_feedback_instanced</a></td></tr>
|
|
||||||
<tr><td class="num">214</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/transform_feedback_overflow_query.txt">ARB_transform_feedback_overflow_query</a></td></tr>
|
|
||||||
<tr><td class="num">215</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/transpose_matrix.txt">ARB_transpose_matrix</a></td></tr>
|
|
||||||
<tr><td class="num">216</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/uniform_buffer_object.txt">ARB_uniform_buffer_object</a></td></tr>
|
|
||||||
<tr><td class="num">217</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/vertex_array_bgra.txt">ARB_vertex_array_bgra</a></td></tr>
|
|
||||||
<tr><td class="num">218</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/vertex_array_object.txt">ARB_vertex_array_object</a></td></tr>
|
|
||||||
<tr><td class="num">219</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/vertex_attrib_64bit.txt">ARB_vertex_attrib_64bit</a></td></tr>
|
|
||||||
<tr><td class="num">220</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/vertex_attrib_binding.txt">ARB_vertex_attrib_binding</a></td></tr>
|
|
||||||
<tr><td class="num">221</td><td> </td><td><a href="http://oss.sgi.com/projects/ogl-sample/registry/ARB/vertex_blend.txt">ARB_vertex_blend</a></td></tr>
|
|
||||||
<tr><td class="num">222</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/vertex_buffer_object.txt">ARB_vertex_buffer_object</a></td></tr>
|
|
||||||
<tr><td class="num">223</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/vertex_program.txt">ARB_vertex_program</a></td></tr>
|
|
||||||
<tr><td class="num">224</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/vertex_shader.txt">ARB_vertex_shader</a></td></tr>
|
|
||||||
<tr><td class="num">225</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/vertex_type_10f_11f_11f_rev.txt">ARB_vertex_type_10f_11f_11f_rev</a></td></tr>
|
|
||||||
<tr><td class="num">226</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt">ARB_vertex_type_2_10_10_10_rev</a></td></tr>
|
|
||||||
<tr><td class="num">227</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/viewport_array.txt">ARB_viewport_array</a></td></tr>
|
|
||||||
<tr><td class="num">228</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/window_pos.txt">ARB_window_pos</a></td></tr>
|
|
||||||
<tr><td><br></td><td></td><td></td></tr>
|
|
||||||
<tr><td class="num">229</td><td> </td><td><a href="http://www.ati.com/developer/atiopengl.pdf">ATIX_point_sprites</a></td></tr>
|
|
||||||
<tr><td class="num">230</td><td> </td><td><a href="http://www.ati.com/developer/atiopengl.pdf">ATIX_texture_env_combine3</a></td></tr>
|
|
||||||
<tr><td class="num">231</td><td> </td><td><a href="http://www.ati.com/developer/sdk/RadeonSDK/Html/Info/ATIX_texture_env_route.txt">ATIX_texture_env_route</a></td></tr>
|
|
||||||
<tr><td class="num">232</td><td> </td><td><a href="http://www.ati.com/developer/atiopengl.pdf">ATIX_vertex_shader_output_point_size</a></td></tr>
|
|
||||||
<tr><td><br></td><td></td><td></td></tr>
|
|
||||||
<tr><td class="num">233</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ATI/draw_buffers.txt">ATI_draw_buffers</a></td></tr>
|
|
||||||
<tr><td class="num">234</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ATI/element_array.txt">ATI_element_array</a></td></tr>
|
|
||||||
<tr><td class="num">235</td><td> </td><td><a href="http://oss.sgi.com/projects/ogl-sample/registry/ATI/envmap_bumpmap.txt">ATI_envmap_bumpmap</a></td></tr>
|
|
||||||
<tr><td class="num">236</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ATI/fragment_shader.txt">ATI_fragment_shader</a></td></tr>
|
|
||||||
<tr><td class="num">237</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ATI/map_object_buffer.txt">ATI_map_object_buffer</a></td></tr>
|
|
||||||
<tr><td class="num">238</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ATI/meminfo.txt">ATI_meminfo</a></td></tr>
|
|
||||||
<tr><td class="num">239</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ATI/pn_triangles.txt">ATI_pn_triangles</a></td></tr>
|
|
||||||
<tr><td class="num">240</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ATI/separate_stencil.txt">ATI_separate_stencil</a></td></tr>
|
|
||||||
<tr><td class="num">241</td><td> </td><td>ATI_shader_texture_lod</td></tr>
|
|
||||||
<tr><td class="num">242</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ATI/text_fragment_shader.txt">ATI_text_fragment_shader</a></td></tr>
|
|
||||||
<tr><td class="num">243</td><td> </td><td>ATI_texture_compression_3dc</td></tr>
|
|
||||||
<tr><td class="num">244</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ATI/texture_env_combine3.txt">ATI_texture_env_combine3</a></td></tr>
|
|
||||||
<tr><td class="num">245</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ATI/texture_float.txt">ATI_texture_float</a></td></tr>
|
|
||||||
<tr><td class="num">246</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ATI/texture_mirror_once.txt">ATI_texture_mirror_once</a></td></tr>
|
|
||||||
<tr><td class="num">247</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ATI/vertex_array_object.txt">ATI_vertex_array_object</a></td></tr>
|
|
||||||
<tr><td class="num">248</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ATI/vertex_attrib_array_object.txt">ATI_vertex_attrib_array_object</a></td></tr>
|
|
||||||
<tr><td class="num">249</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ATI/vertex_streams.txt">ATI_vertex_streams</a></td></tr>
|
|
||||||
<tr><td><br></td><td></td><td></td></tr>
|
|
||||||
<tr><td class="num">250</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/422_pixels.txt">EXT_422_pixels</a></td></tr>
|
|
||||||
<tr><td class="num">251</td><td> </td><td><a href="http://download.nvidia.com/developer/GLSL/GLSL%20Release%20Notes%20for%20Release%2060.pdf">EXT_Cg_shader</a></td></tr>
|
|
||||||
<tr><td class="num">252</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/abgr.txt">EXT_abgr</a></td></tr>
|
|
||||||
<tr><td class="num">253</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/bgra.txt">EXT_bgra</a></td></tr>
|
|
||||||
<tr><td class="num">254</td><td> </td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_EXT_bindable_uniform.txt">EXT_bindable_uniform</a></td></tr>
|
|
||||||
<tr><td class="num">255</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/blend_color.txt">EXT_blend_color</a></td></tr>
|
|
||||||
<tr><td class="num">256</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/blend_equation_separate.txt">EXT_blend_equation_separate</a></td></tr>
|
|
||||||
<tr><td class="num">257</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/blend_func_separate.txt">EXT_blend_func_separate</a></td></tr>
|
|
||||||
<tr><td class="num">258</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/blend_logic_op.txt">EXT_blend_logic_op</a></td></tr>
|
|
||||||
<tr><td class="num">259</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/blend_minmax.txt">EXT_blend_minmax</a></td></tr>
|
|
||||||
<tr><td class="num">260</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/blend_subtract.txt">EXT_blend_subtract</a></td></tr>
|
|
||||||
<tr><td class="num">261</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/clip_volume_hint.txt">EXT_clip_volume_hint</a></td></tr>
|
|
||||||
<tr><td class="num">262</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/cmyka.txt">EXT_cmyka</a></td></tr>
|
|
||||||
<tr><td class="num">263</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/color_subtable.txt">EXT_color_subtable</a></td></tr>
|
|
||||||
<tr><td class="num">264</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/compiled_vertex_array.txt">EXT_compiled_vertex_array</a></td></tr>
|
|
||||||
<tr><td class="num">265</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/convolution.txt">EXT_convolution</a></td></tr>
|
|
||||||
<tr><td class="num">266</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/coordinate_frame.txt">EXT_coordinate_frame</a></td></tr>
|
|
||||||
<tr><td class="num">267</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/copy_texture.txt">EXT_copy_texture</a></td></tr>
|
|
||||||
<tr><td class="num">268</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/cull_vertex.txt">EXT_cull_vertex</a></td></tr>
|
|
||||||
<tr><td class="num">269</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/EXT_debug_label.txt">EXT_debug_label</a></td></tr>
|
|
||||||
<tr><td class="num">270</td><td> </td><td><a href="http://www.khronos.org/registry/gles/extensions/EXT/EXT_debug_marker.txt">EXT_debug_marker</a></td></tr>
|
|
||||||
<tr><td class="num">271</td><td> </td><td><a href="http://www.nvidia.com/dev_content/nvopenglspecs/GL_EXT_depth_bounds_test.txt">EXT_depth_bounds_test</a></td></tr>
|
|
||||||
<tr><td class="num">272</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/direct_state_access.txt">EXT_direct_state_access</a></td></tr>
|
|
||||||
<tr><td class="num">273</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/draw_buffers2.txt">EXT_draw_buffers2</a></td></tr>
|
|
||||||
<tr><td class="num">274</td><td> </td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_EXT_draw_instanced.txt">EXT_draw_instanced</a></td></tr>
|
|
||||||
<tr><td class="num">275</td><td> </td><td><a href="http://oss.sgi.com/projects/ogl-sample/registry/EXT/draw_range_elements.txt">EXT_draw_range_elements</a></td></tr>
|
|
||||||
<tr><td class="num">276</td><td> </td><td><a href="http://oss.sgi.com/projects/ogl-sample/registry/EXT/fog_coord.txt">EXT_fog_coord</a></td></tr>
|
|
||||||
<tr><td class="num">277</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/fragment_lighting.txt">EXT_fragment_lighting</a></td></tr>
|
|
||||||
<tr><td class="num">278</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/framebuffer_blit.txt">EXT_framebuffer_blit</a></td></tr>
|
|
||||||
<tr><td class="num">279</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/framebuffer_multisample.txt">EXT_framebuffer_multisample</a></td></tr>
|
|
||||||
<tr><td class="num">280</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/framebuffer_multisample_blit_scaled.txt">EXT_framebuffer_multisample_blit_scaled</a></td></tr>
|
|
||||||
<tr><td class="num">281</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/framebuffer_object.txt">EXT_framebuffer_object</a></td></tr>
|
|
||||||
<tr><td class="num">282</td><td> </td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_EXT_framebuffer_sRGB.txt">EXT_framebuffer_sRGB</a></td></tr>
|
|
||||||
<tr><td class="num">283</td><td> </td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_EXT_geometry_shader4.txt">EXT_geometry_shader4</a></td></tr>
|
|
||||||
<tr><td class="num">284</td><td> </td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_EXT_gpu_program_parameters.txt">EXT_gpu_program_parameters</a></td></tr>
|
|
||||||
<tr><td class="num">285</td><td> </td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_EXT_gpu_shader4.txt">EXT_gpu_shader4</a></td></tr>
|
|
||||||
<tr><td class="num">286</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/histogram.txt">EXT_histogram</a></td></tr>
|
|
||||||
<tr><td class="num">287</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/index_array_formats.txt">EXT_index_array_formats</a></td></tr>
|
|
||||||
<tr><td class="num">288</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/index_func.txt">EXT_index_func</a></td></tr>
|
|
||||||
<tr><td class="num">289</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/index_material.txt">EXT_index_material</a></td></tr>
|
|
||||||
<tr><td class="num">290</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/index_texture.txt">EXT_index_texture</a></td></tr>
|
|
||||||
<tr><td class="num">291</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/light_texture.txt">EXT_light_texture</a></td></tr>
|
|
||||||
<tr><td class="num">292</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/misc_attribute.txt">EXT_misc_attribute</a></td></tr>
|
|
||||||
<tr><td class="num">293</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/multi_draw_arrays.txt">EXT_multi_draw_arrays</a></td></tr>
|
|
||||||
<tr><td class="num">294</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/wgl_multisample.txt">EXT_multisample</a></td></tr>
|
|
||||||
<tr><td class="num">295</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/packed_depth_stencil.txt">EXT_packed_depth_stencil</a></td></tr>
|
|
||||||
<tr><td class="num">296</td><td> </td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_EXT_packed_float.txt">EXT_packed_float</a></td></tr>
|
|
||||||
<tr><td class="num">297</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/packed_pixels.txt">EXT_packed_pixels</a></td></tr>
|
|
||||||
<tr><td class="num">298</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/paletted_texture.txt">EXT_paletted_texture</a></td></tr>
|
|
||||||
<tr><td class="num">299</td><td> </td><td><a href="http://www.nvidia.com/dev_content/nvopenglspecs/GL_EXT_pixel_buffer_object.txt">EXT_pixel_buffer_object</a></td></tr>
|
|
||||||
<tr><td class="num">300</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/pixel_transform.txt">EXT_pixel_transform</a></td></tr>
|
|
||||||
<tr><td class="num">301</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/pixel_transform_color_table.txt">EXT_pixel_transform_color_table</a></td></tr>
|
|
||||||
<tr><td class="num">302</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/point_parameters.txt">EXT_point_parameters</a></td></tr>
|
|
||||||
<tr><td class="num">303</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/polygon_offset.txt">EXT_polygon_offset</a></td></tr>
|
|
||||||
<tr><td class="num">304</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/polygon_offset_clamp.txt">EXT_polygon_offset_clamp</a></td></tr>
|
|
||||||
<tr><td class="num">305</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/post_depth_coverage.txt">EXT_post_depth_coverage</a></td></tr>
|
|
||||||
<tr><td class="num">306</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/provoking_vertex.txt">EXT_provoking_vertex</a></td></tr>
|
|
||||||
<tr><td class="num">307</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/framebuffer_mixed_samples.txt">EXT_raster_multisample</a></td></tr>
|
|
||||||
<tr><td class="num">308</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/rescale_normal.txt">EXT_rescale_normal</a></td></tr>
|
|
||||||
<tr><td class="num">309</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/scene_marker.txt">EXT_scene_marker</a></td></tr>
|
|
||||||
<tr><td class="num">310</td><td> </td><td><a href="http://oss.sgi.com/projects/ogl-sample/registry/EXT/secondary_color.txt">EXT_secondary_color</a></td></tr>
|
|
||||||
<tr><td class="num">311</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/separate_shader_objects.txt">EXT_separate_shader_objects</a></td></tr>
|
|
||||||
<tr><td class="num">312</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/separate_specular_color.txt">EXT_separate_specular_color</a></td></tr>
|
|
||||||
<tr><td class="num">313</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/shader_image_load_formatted.txt">EXT_shader_image_load_formatted</a></td></tr>
|
|
||||||
<tr><td class="num">314</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/shader_image_load_store.txt">EXT_shader_image_load_store</a></td></tr>
|
|
||||||
<tr><td class="num">315</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/shader_integer_mix.txt">EXT_shader_integer_mix</a></td></tr>
|
|
||||||
<tr><td class="num">316</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/shadow_funcs.txt">EXT_shadow_funcs</a></td></tr>
|
|
||||||
<tr><td class="num">317</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/shared_texture_palette.txt">EXT_shared_texture_palette</a></td></tr>
|
|
||||||
<tr><td class="num">318</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/sparse_texture2.txt">EXT_sparse_texture2</a></td></tr>
|
|
||||||
<tr><td class="num">319</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/stencil_clear_tag.txt">EXT_stencil_clear_tag</a></td></tr>
|
|
||||||
<tr><td class="num">320</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/stencil_two_side.txt">EXT_stencil_two_side</a></td></tr>
|
|
||||||
<tr><td class="num">321</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/stencil_wrap.txt">EXT_stencil_wrap</a></td></tr>
|
|
||||||
<tr><td class="num">322</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/subtexture.txt">EXT_subtexture</a></td></tr>
|
|
||||||
<tr><td class="num">323</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/texture.txt">EXT_texture</a></td></tr>
|
|
||||||
<tr><td class="num">324</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/texture3D.txt">EXT_texture3D</a></td></tr>
|
|
||||||
<tr><td class="num">325</td><td> </td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_EXT_texture_array.txt">EXT_texture_array</a></td></tr>
|
|
||||||
<tr><td class="num">326</td><td> </td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_EXT_texture_buffer_object.txt">EXT_texture_buffer_object</a></td></tr>
|
|
||||||
<tr><td class="num">327</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/texture_compression_dxt1.txt">EXT_texture_compression_dxt1</a></td></tr>
|
|
||||||
<tr><td class="num">328</td><td> </td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_EXT_texture_compression_latc.txt">EXT_texture_compression_latc</a></td></tr>
|
|
||||||
<tr><td class="num">329</td><td> </td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_EXT_texture_compression_rgtc.txt">EXT_texture_compression_rgtc</a></td></tr>
|
|
||||||
<tr><td class="num">330</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/texture_compression_s3tc.txt">EXT_texture_compression_s3tc</a></td></tr>
|
|
||||||
<tr><td class="num">331</td><td> </td><td><a href="http://www.nvidia.com/dev_content/nvopenglspecs/GL_EXT_texture_cube_map.txt">EXT_texture_cube_map</a></td></tr>
|
|
||||||
<tr><td class="num">332</td><td> </td><td><a href="http://www.opengl.org/developers/documentation/Version1.2/1.2specs/texture_edge_clamp.txt">EXT_texture_edge_clamp</a></td></tr>
|
|
||||||
<tr><td class="num">333</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/texture_env.txt">EXT_texture_env</a></td></tr>
|
|
||||||
<tr><td class="num">334</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/texture_env_add.txt">EXT_texture_env_add</a></td></tr>
|
|
||||||
<tr><td class="num">335</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/texture_env_combine.txt">EXT_texture_env_combine</a></td></tr>
|
|
||||||
<tr><td class="num">336</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/texture_env_dot3.txt">EXT_texture_env_dot3</a></td></tr>
|
|
||||||
<tr><td class="num">337</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/texture_filter_anisotropic.txt">EXT_texture_filter_anisotropic</a></td></tr>
|
|
||||||
<tr><td class="num">338</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/texture_filter_minmax.txt">EXT_texture_filter_minmax</a></td></tr>
|
|
||||||
<tr><td class="num">339</td><td> </td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_EXT_texture_integer.txt">EXT_texture_integer</a></td></tr>
|
|
||||||
<tr><td class="num">340</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/texture_lod_bias.txt">EXT_texture_lod_bias</a></td></tr>
|
|
||||||
<tr><td class="num">341</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/texture_mirror_clamp.txt">EXT_texture_mirror_clamp</a></td></tr>
|
|
||||||
<tr><td class="num">342</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/texture_object.txt">EXT_texture_object</a></td></tr>
|
|
||||||
<tr><td class="num">343</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/texture_perturb_normal.txt">EXT_texture_perturb_normal</a></td></tr>
|
|
||||||
<tr><td class="num">344</td><td> </td><td><a href="http://developer.apple.com/opengl/extensions/ext_texture_rectangle.html">EXT_texture_rectangle</a></td></tr>
|
|
||||||
<tr><td class="num">345</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/texture_sRGB.txt">EXT_texture_sRGB</a></td></tr>
|
|
||||||
<tr><td class="num">346</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/texture_sRGB_decode.txt">EXT_texture_sRGB_decode</a></td></tr>
|
|
||||||
<tr><td class="num">347</td><td> </td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_EXT_texture_shared_exponent.txt">EXT_texture_shared_exponent</a></td></tr>
|
|
||||||
<tr><td class="num">348</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/texture_snorm.txt">EXT_texture_snorm</a></td></tr>
|
|
||||||
<tr><td class="num">349</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/texture_swizzle.txt">EXT_texture_swizzle</a></td></tr>
|
|
||||||
<tr><td class="num">350</td><td> </td><td><a href="http://www.nvidia.com/dev_content/nvopenglspecs/GL_EXT_timer_query.txt">EXT_timer_query</a></td></tr>
|
|
||||||
<tr><td class="num">351</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/transform_feedback.txt">EXT_transform_feedback</a></td></tr>
|
|
||||||
<tr><td class="num">352</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/vertex_array.txt">EXT_vertex_array</a></td></tr>
|
|
||||||
<tr><td class="num">353</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/vertex_array_bgra.txt">EXT_vertex_array_bgra</a></td></tr>
|
|
||||||
<tr><td class="num">354</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/vertex_attrib_64bit.txt">EXT_vertex_attrib_64bit</a></td></tr>
|
|
||||||
<tr><td class="num">355</td><td> </td><td><a href="http://oss.sgi.com/projects/ogl-sample/registry/EXT/vertex_shader.txt">EXT_vertex_shader</a></td></tr>
|
|
||||||
<tr><td class="num">356</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/vertex_weighting.txt">EXT_vertex_weighting</a></td></tr>
|
|
||||||
<tr><td class="num">357</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/x11_sync_object.txt">EXT_x11_sync_object</a></td></tr>
|
|
||||||
<tr><td><br></td><td></td><td></td></tr>
|
|
||||||
<tr><td class="num">358</td><td> </td><td><a href="http://www.opengl.org/registry/specs/GREMEDY/frame_terminator.txt">GREMEDY_frame_terminator</a></td></tr>
|
|
||||||
<tr><td class="num">359</td><td> </td><td><a href="http://www.opengl.org/registry/specs/GREMEDY/string_marker.txt">GREMEDY_string_marker</a></td></tr>
|
|
||||||
<tr><td><br></td><td></td><td></td></tr>
|
|
||||||
<tr><td class="num">360</td><td> </td><td><a href="http://www.opengl.org/registry/specs/HP/convolution_border_modes.txt">HP_convolution_border_modes</a></td></tr>
|
|
||||||
<tr><td class="num">361</td><td> </td><td><a href="http://www.opengl.org/registry/specs/HP/image_transform.txt">HP_image_transform</a></td></tr>
|
|
||||||
<tr><td class="num">362</td><td> </td><td><a href="http://www.opengl.org/registry/specs/HP/occlusion_test.txt">HP_occlusion_test</a></td></tr>
|
|
||||||
<tr><td class="num">363</td><td> </td><td><a href="http://www.opengl.org/registry/specs/HP/texture_lighting.txt">HP_texture_lighting</a></td></tr>
|
|
||||||
<tr><td><br></td><td></td><td></td></tr>
|
|
||||||
<tr><td class="num">364</td><td> </td><td><a href="http://www.opengl.org/registry/specs/IBM/cull_vertex.txt">IBM_cull_vertex</a></td></tr>
|
|
||||||
<tr><td class="num">365</td><td> </td><td><a href="http://www.opengl.org/registry/specs/IBM/multimode_draw_arrays.txt">IBM_multimode_draw_arrays</a></td></tr>
|
|
||||||
<tr><td class="num">366</td><td> </td><td><a href="http://www.opengl.org/registry/specs/IBM/rasterpos_clip.txt">IBM_rasterpos_clip</a></td></tr>
|
|
||||||
<tr><td class="num">367</td><td> </td><td><a href="http://www.opengl.org/registry/specs/IBM/static_data.txt">IBM_static_data</a></td></tr>
|
|
||||||
<tr><td class="num">368</td><td> </td><td><a href="http://www.opengl.org/registry/specs/IBM/texture_mirrored_repeat.txt">IBM_texture_mirrored_repeat</a></td></tr>
|
|
||||||
<tr><td class="num">369</td><td> </td><td><a href="http://www.opengl.org/registry/specs/IBM/vertex_array_lists.txt">IBM_vertex_array_lists</a></td></tr>
|
|
||||||
<tr><td><br></td><td></td><td></td></tr>
|
|
||||||
<tr><td class="num">370</td><td> </td><td><a href="http://www.opengl.org/registry/specs/INGR/color_clamp.txt">INGR_color_clamp</a></td></tr>
|
|
||||||
<tr><td class="num">371</td><td> </td><td><a href="http://www.opengl.org/registry/specs/INGR/interlace_read.txt">INGR_interlace_read</a></td></tr>
|
|
||||||
<tr><td><br></td><td></td><td></td></tr>
|
|
||||||
<tr><td class="num">372</td><td> </td><td><a href="http://www.opengl.org/registry/specs/INTEL/fragment_shader_ordering.txt">INTEL_fragment_shader_ordering</a></td></tr>
|
|
||||||
<tr><td class="num">373</td><td> </td><td><a href="http://www.opengl.org/registry/specs/INTEL/framebuffer_CMAA.txt">INTEL_framebuffer_CMAA</a></td></tr>
|
|
||||||
<tr><td class="num">374</td><td> </td><td><a href="http://www.opengl.org/registry/specs/INTEL/map_texture.txt">INTEL_map_texture</a></td></tr>
|
|
||||||
<tr><td class="num">375</td><td> </td><td><a href="http://www.opengl.org/registry/specs/INTEL/parallel_arrays.txt">INTEL_parallel_arrays</a></td></tr>
|
|
||||||
<tr><td class="num">376</td><td> </td><td><a href="http://www.opengl.org/registry/specs/INTEL/performance_query.txt">INTEL_performance_query</a></td></tr>
|
|
||||||
<tr><td class="num">377</td><td> </td><td><a href="http://www.opengl.org/registry/specs/INTEL/texture_scissor.txt">INTEL_texture_scissor</a></td></tr>
|
|
||||||
<tr><td><br></td><td></td><td></td></tr>
|
|
||||||
<tr><td class="num">378</td><td> </td><td><a href="http://www.opengl.org/registry/specs/KHR/blend_equation_advanced.txt">KHR_blend_equation_advanced</a></td></tr>
|
|
||||||
<tr><td class="num">379</td><td> </td><td><a href="http://www.opengl.org/registry/specs/KHR/blend_equation_advanced.txt">KHR_blend_equation_advanced_coherent</a></td></tr>
|
|
||||||
<tr><td class="num">380</td><td> </td><td><a href="http://www.opengl.org/registry/specs/KHR/context_flush_control.txt">KHR_context_flush_control</a></td></tr>
|
|
||||||
<tr><td class="num">381</td><td> </td><td><a href="http://www.opengl.org/registry/specs/KHR/debug.txt">KHR_debug</a></td></tr>
|
|
||||||
<tr><td class="num">382</td><td> </td><td><a href="http://www.opengl.org/registry/specs/KHR/no_error.txt">KHR_no_error</a></td></tr>
|
|
||||||
<tr><td class="num">383</td><td> </td><td><a href="http://www.opengl.org/registry/specs/KHR/robust_buffer_access_behavior.txt">KHR_robust_buffer_access_behavior</a></td></tr>
|
|
||||||
<tr><td class="num">384</td><td> </td><td><a href="http://www.opengl.org/registry/specs/KHR/robustness.txt">KHR_robustness</a></td></tr>
|
|
||||||
<tr><td class="num">385</td><td> </td><td><a href="http://www.opengl.org/registry/specs/KHR/texture_compression_astc_hdr.txt">KHR_texture_compression_astc_hdr</a></td></tr>
|
|
||||||
<tr><td class="num">386</td><td> </td><td><a href="http://www.opengl.org/registry/specs/KHR/texture_compression_astc_hdr.txt">KHR_texture_compression_astc_ldr</a></td></tr>
|
|
||||||
<tr><td><br></td><td></td><td></td></tr>
|
|
||||||
<tr><td class="num">387</td><td> </td><td>KTX_buffer_region</td></tr>
|
|
||||||
<tr><td><br></td><td></td><td></td></tr>
|
|
||||||
<tr><td class="num">388</td><td> </td><td><a href="http://www.opengl.org/registry/specs/MESAX/texture_stack.txt">MESAX_texture_stack</a></td></tr>
|
|
||||||
<tr><td><br></td><td></td><td></td></tr>
|
|
||||||
<tr><td class="num">389</td><td> </td><td><a href="http://www.opengl.org/registry/specs/MESA/pack_invert.txt">MESA_pack_invert</a></td></tr>
|
|
||||||
<tr><td class="num">390</td><td> </td><td><a href="http://www.opengl.org/registry/specs/MESA/resize_buffers.txt">MESA_resize_buffers</a></td></tr>
|
|
||||||
<tr><td class="num">391</td><td> </td><td><a href="http://www.opengl.org/registry/specs/MESA/window_pos.txt">MESA_window_pos</a></td></tr>
|
|
||||||
<tr><td class="num">392</td><td> </td><td><a href="http://www.opengl.org/registry/specs/MESA/ycbcr_texture.txt">MESA_ycbcr_texture</a></td></tr>
|
|
||||||
<tr><td><br></td><td></td><td></td></tr>
|
|
||||||
<tr><td class="num">393</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NVX/nvx_conditional_render.txt">NVX_conditional_render</a></td></tr>
|
|
||||||
<tr><td class="num">394</td><td> </td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_NVX_gpu_memory_info.txt">NVX_gpu_memory_info</a></td></tr>
|
|
||||||
<tr><td><br></td><td></td><td></td></tr>
|
|
||||||
<tr><td class="num">395</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/bindless_multi_draw_indirect.txt">NV_bindless_multi_draw_indirect</a></td></tr>
|
|
||||||
<tr><td class="num">396</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/bindless_multi_draw_indirect_count.txt">NV_bindless_multi_draw_indirect_count</a></td></tr>
|
|
||||||
<tr><td class="num">397</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/bindless_texture.txt">NV_bindless_texture</a></td></tr>
|
|
||||||
<tr><td class="num">398</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/blend_equation_advanced.txt">NV_blend_equation_advanced</a></td></tr>
|
|
||||||
<tr><td class="num">399</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/blend_equation_advanced.txt">NV_blend_equation_advanced_coherent</a></td></tr>
|
|
||||||
<tr><td class="num">400</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/blend_square.txt">NV_blend_square</a></td></tr>
|
|
||||||
<tr><td class="num">401</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/compute_program5.txt">NV_compute_program5</a></td></tr>
|
|
||||||
<tr><td class="num">402</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/conditional_render.txt">NV_conditional_render</a></td></tr>
|
|
||||||
<tr><td class="num">403</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/conservative_raster.txt">NV_conservative_raster</a></td></tr>
|
|
||||||
<tr><td class="num">404</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/conservative_raster_dilate.txt">NV_conservative_raster_dilate</a></td></tr>
|
|
||||||
<tr><td class="num">405</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/copy_depth_to_color.txt">NV_copy_depth_to_color</a></td></tr>
|
|
||||||
<tr><td class="num">406</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/copy_image.txt">NV_copy_image</a></td></tr>
|
|
||||||
<tr><td class="num">407</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/deep_texture3D.txt">NV_deep_texture3D</a></td></tr>
|
|
||||||
<tr><td class="num">408</td><td> </td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_NV_depth_buffer_float.txt">NV_depth_buffer_float</a></td></tr>
|
|
||||||
<tr><td class="num">409</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/depth_clamp.txt">NV_depth_clamp</a></td></tr>
|
|
||||||
<tr><td class="num">410</td><td> </td><td>NV_depth_range_unclamped</td></tr>
|
|
||||||
<tr><td class="num">411</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/draw_texture.txt">NV_draw_texture</a></td></tr>
|
|
||||||
<tr><td class="num">412</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/evaluators.txt">NV_evaluators</a></td></tr>
|
|
||||||
<tr><td class="num">413</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/explicit_multisample.txt">NV_explicit_multisample</a></td></tr>
|
|
||||||
<tr><td class="num">414</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/fence.txt">NV_fence</a></td></tr>
|
|
||||||
<tr><td class="num">415</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/fill_rectangle.txt">NV_fill_rectangle</a></td></tr>
|
|
||||||
<tr><td class="num">416</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/float_buffer.txt">NV_float_buffer</a></td></tr>
|
|
||||||
<tr><td class="num">417</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/fog_distance.txt">NV_fog_distance</a></td></tr>
|
|
||||||
<tr><td class="num">418</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/fragment_coverage_to_color.txt">NV_fragment_coverage_to_color</a></td></tr>
|
|
||||||
<tr><td class="num">419</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/fragment_program.txt">NV_fragment_program</a></td></tr>
|
|
||||||
<tr><td class="num">420</td><td> </td><td><a href="http://www.nvidia.com/dev_content/nvopenglspecs/GL_NV_fragment_program2.txt">NV_fragment_program2</a></td></tr>
|
|
||||||
<tr><td class="num">421</td><td> </td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_NV_fragment_program4.txt">NV_fragment_program4</a></td></tr>
|
|
||||||
<tr><td class="num">422</td><td> </td><td><a href="http://www.nvidia.com/dev_content/nvopenglspecs/GL_NV_fragment_program_option.txt">NV_fragment_program_option</a></td></tr>
|
|
||||||
<tr><td class="num">423</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/fragment_shader_interlock.txt">NV_fragment_shader_interlock</a></td></tr>
|
|
||||||
<tr><td class="num">424</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/framebuffer_mixed_samples.txt">NV_framebuffer_mixed_samples</a></td></tr>
|
|
||||||
<tr><td class="num">425</td><td> </td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_NV_framebuffer_multisample_coverage.txt">NV_framebuffer_multisample_coverage</a></td></tr>
|
|
||||||
<tr><td class="num">426</td><td> </td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_NV_geometry_program4.txt">NV_geometry_program4</a></td></tr>
|
|
||||||
<tr><td class="num">427</td><td> </td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_NV_geometry_shader4.txt">NV_geometry_shader4</a></td></tr>
|
|
||||||
<tr><td class="num">428</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/geometry_shader_passthrough.txt">NV_geometry_shader_passthrough</a></td></tr>
|
|
||||||
<tr><td class="num">429</td><td> </td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_NV_gpu_program4.txt">NV_gpu_program4</a></td></tr>
|
|
||||||
<tr><td class="num">430</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/gpu_program5.txt">NV_gpu_program5</a></td></tr>
|
|
||||||
<tr><td class="num">431</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/gpu_program5_mem_extended.txt">NV_gpu_program5_mem_extended</a></td></tr>
|
|
||||||
<tr><td class="num">432</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/gpu_program5.txt">NV_gpu_program_fp64</a></td></tr>
|
|
||||||
<tr><td class="num">433</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/gpu_shader5.txt">NV_gpu_shader5</a></td></tr>
|
|
||||||
<tr><td class="num">434</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/half_float.txt">NV_half_float</a></td></tr>
|
|
||||||
<tr><td class="num">435</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/internalformat_sample_query.txt">NV_internalformat_sample_query</a></td></tr>
|
|
||||||
<tr><td class="num">436</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/light_max_exponent.txt">NV_light_max_exponent</a></td></tr>
|
|
||||||
<tr><td class="num">437</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/multisample_coverage.txt">NV_multisample_coverage</a></td></tr>
|
|
||||||
<tr><td class="num">438</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/multisample_filter_hint.txt">NV_multisample_filter_hint</a></td></tr>
|
|
||||||
<tr><td class="num">439</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/occlusion_query.txt">NV_occlusion_query</a></td></tr>
|
|
||||||
<tr><td class="num">440</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/packed_depth_stencil.txt">NV_packed_depth_stencil</a></td></tr>
|
|
||||||
<tr><td class="num">441</td><td> </td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_NV_parameter_buffer_object.txt">NV_parameter_buffer_object</a></td></tr>
|
|
||||||
<tr><td class="num">442</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/parameter_buffer_object2.txt">NV_parameter_buffer_object2</a></td></tr>
|
|
||||||
<tr><td class="num">443</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/path_rendering.txt">NV_path_rendering</a></td></tr>
|
|
||||||
<tr><td class="num">444</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/path_rendering_shared_edge.txt">NV_path_rendering_shared_edge</a></td></tr>
|
|
||||||
<tr><td class="num">445</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/pixel_data_range.txt">NV_pixel_data_range</a></td></tr>
|
|
||||||
<tr><td class="num">446</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/point_sprite.txt">NV_point_sprite</a></td></tr>
|
|
||||||
<tr><td class="num">447</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/present_video.txt">NV_present_video</a></td></tr>
|
|
||||||
<tr><td class="num">448</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/primitive_restart.txt">NV_primitive_restart</a></td></tr>
|
|
||||||
<tr><td class="num">449</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/register_combiners.txt">NV_register_combiners</a></td></tr>
|
|
||||||
<tr><td class="num">450</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/register_combiners2.txt">NV_register_combiners2</a></td></tr>
|
|
||||||
<tr><td class="num">451</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/sample_locations.txt">NV_sample_locations</a></td></tr>
|
|
||||||
<tr><td class="num">452</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/sample_mask_override_coverage.txt">NV_sample_mask_override_coverage</a></td></tr>
|
|
||||||
<tr><td class="num">453</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/shader_atomic_counters.txt">NV_shader_atomic_counters</a></td></tr>
|
|
||||||
<tr><td class="num">454</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/shader_atomic_float.txt">NV_shader_atomic_float</a></td></tr>
|
|
||||||
<tr><td class="num">455</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/shader_atomic_fp16_vector.txt">NV_shader_atomic_fp16_vector</a></td></tr>
|
|
||||||
<tr><td class="num">456</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/shader_atomic_int64.txt">NV_shader_atomic_int64</a></td></tr>
|
|
||||||
<tr><td class="num">457</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/shader_buffer_load.txt">NV_shader_buffer_load</a></td></tr>
|
|
||||||
<tr><td class="num">458</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/shader_storage_buffer_object.txt">NV_shader_storage_buffer_object</a></td></tr>
|
|
||||||
<tr><td class="num">459</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/shader_thread_group.txt">NV_shader_thread_group</a></td></tr>
|
|
||||||
<tr><td class="num">460</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/shader_thread_shuffle.txt">NV_shader_thread_shuffle</a></td></tr>
|
|
||||||
<tr><td class="num">461</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/tessellation_program5.txt">NV_tessellation_program5</a></td></tr>
|
|
||||||
<tr><td class="num">462</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/texgen_emboss.txt">NV_texgen_emboss</a></td></tr>
|
|
||||||
<tr><td class="num">463</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/texgen_reflection.txt">NV_texgen_reflection</a></td></tr>
|
|
||||||
<tr><td class="num">464</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/texture_barrier.txt">NV_texture_barrier</a></td></tr>
|
|
||||||
<tr><td class="num">465</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/texture_compression_vtc.txt">NV_texture_compression_vtc</a></td></tr>
|
|
||||||
<tr><td class="num">466</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/texture_env_combine4.txt">NV_texture_env_combine4</a></td></tr>
|
|
||||||
<tr><td class="num">467</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/texture_expand_normal.txt">NV_texture_expand_normal</a></td></tr>
|
|
||||||
<tr><td class="num">468</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/texture_multisample.txt">NV_texture_multisample</a></td></tr>
|
|
||||||
<tr><td class="num">469</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/texture_rectangle.txt">NV_texture_rectangle</a></td></tr>
|
|
||||||
<tr><td class="num">470</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/texture_shader.txt">NV_texture_shader</a></td></tr>
|
|
||||||
<tr><td class="num">471</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/texture_shader2.txt">NV_texture_shader2</a></td></tr>
|
|
||||||
<tr><td class="num">472</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/texture_shader3.txt">NV_texture_shader3</a></td></tr>
|
|
||||||
<tr><td class="num">473</td><td> </td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_NV_transform_feedback.txt">NV_transform_feedback</a></td></tr>
|
|
||||||
<tr><td class="num">474</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/transform_feedback2.txt">NV_transform_feedback2</a></td></tr>
|
|
||||||
<tr><td class="num">475</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/uniform_buffer_unified_memory.txt">NV_uniform_buffer_unified_memory</a></td></tr>
|
|
||||||
<tr><td class="num">476</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/vdpau_interop.txt">NV_vdpau_interop</a></td></tr>
|
|
||||||
<tr><td class="num">477</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/vertex_array_range.txt">NV_vertex_array_range</a></td></tr>
|
|
||||||
<tr><td class="num">478</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/vertex_array_range2.txt">NV_vertex_array_range2</a></td></tr>
|
|
||||||
<tr><td class="num">479</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/vertex_attrib_integer_64bit.txt">NV_vertex_attrib_integer_64bit</a></td></tr>
|
|
||||||
<tr><td class="num">480</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/vertex_buffer_unified_memory.txt">NV_vertex_buffer_unified_memory</a></td></tr>
|
|
||||||
<tr><td class="num">481</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/vertex_program.txt">NV_vertex_program</a></td></tr>
|
|
||||||
<tr><td class="num">482</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/vertex_program1_1.txt">NV_vertex_program1_1</a></td></tr>
|
|
||||||
<tr><td class="num">483</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/vertex_program2.txt">NV_vertex_program2</a></td></tr>
|
|
||||||
<tr><td class="num">484</td><td> </td><td><a href="http://www.nvidia.com/dev_content/nvopenglspecs/GL_NV_vertex_program2_option.txt">NV_vertex_program2_option</a></td></tr>
|
|
||||||
<tr><td class="num">485</td><td> </td><td><a href="http://www.nvidia.com/dev_content/nvopenglspecs/GL_NV_vertex_program3.txt">NV_vertex_program3</a></td></tr>
|
|
||||||
<tr><td class="num">486</td><td> </td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_NV_vertex_program4.txt">NV_vertex_program4</a></td></tr>
|
|
||||||
<tr><td class="num">487</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/video_capture.txt">NV_video_capture</a></td></tr>
|
|
||||||
<tr><td class="num">488</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/viewport_array2.txt">NV_viewport_array2</a></td></tr>
|
|
||||||
<tr><td><br></td><td></td><td></td></tr>
|
|
||||||
<tr><td class="num">489</td><td> </td><td><a href="http://www.opengl.org/registry/specs/OES/OES_byte_coordinates.txt">OES_byte_coordinates</a></td></tr>
|
|
||||||
<tr><td class="num">490</td><td> </td><td><a href="http://www.opengl.org/registry/specs/OES/OES_compressed_paletted_texture.txt">OES_compressed_paletted_texture</a></td></tr>
|
|
||||||
<tr><td class="num">491</td><td> </td><td><a href="http://www.opengl.org/registry/specs/OES/OES_read_format.txt">OES_read_format</a></td></tr>
|
|
||||||
<tr><td class="num">492</td><td> </td><td><a href="http://www.opengl.org/registry/specs/OES/OES_single_precision.txt">OES_single_precision</a></td></tr>
|
|
||||||
<tr><td><br></td><td></td><td></td></tr>
|
|
||||||
<tr><td class="num">493</td><td> </td><td><a href="http://www.opengl.org/registry/specs/OML/interlace.txt">OML_interlace</a></td></tr>
|
|
||||||
<tr><td class="num">494</td><td> </td><td><a href="http://www.opengl.org/registry/specs/OML/resample.txt">OML_resample</a></td></tr>
|
|
||||||
<tr><td class="num">495</td><td> </td><td><a href="http://www.opengl.org/registry/specs/OML/subsample.txt">OML_subsample</a></td></tr>
|
|
||||||
<tr><td><br></td><td></td><td></td></tr>
|
|
||||||
<tr><td class="num">496</td><td> </td><td><a href="http://www.opengl.org/registry/specs/OVR/multiview.txt">OVR_multiview</a></td></tr>
|
|
||||||
<tr><td class="num">497</td><td> </td><td><a href="http://www.opengl.org/registry/specs/OVR/multiview2.txt">OVR_multiview2</a></td></tr>
|
|
||||||
<tr><td><br></td><td></td><td></td></tr>
|
|
||||||
<tr><td class="num">498</td><td> </td><td><a href="http://www.opengl.org/registry/specs/PGI/misc_hints.txt">PGI_misc_hints</a></td></tr>
|
|
||||||
<tr><td class="num">499</td><td> </td><td><a href="http://www.opengl.org/registry/specs/PGI/vertex_hints.txt">PGI_vertex_hints</a></td></tr>
|
|
||||||
<tr><td><br></td><td></td><td></td></tr>
|
|
||||||
<tr><td class="num">500</td><td> </td><td><a href="https://github.com/p3/regal/tree/master/doc/extensions">REGAL_ES1_0_compatibility</a></td></tr>
|
|
||||||
<tr><td class="num">501</td><td> </td><td><a href="https://github.com/p3/regal/tree/master/doc/extensions">REGAL_ES1_1_compatibility</a></td></tr>
|
|
||||||
<tr><td class="num">502</td><td> </td><td><a href="https://github.com/p3/regal/tree/master/doc/extensions">REGAL_enable</a></td></tr>
|
|
||||||
<tr><td class="num">503</td><td> </td><td><a href="https://github.com/p3/regal/tree/master/doc/extensions">REGAL_error_string</a></td></tr>
|
|
||||||
<tr><td class="num">504</td><td> </td><td><a href="https://github.com/p3/regal/tree/master/doc/extensions">REGAL_extension_query</a></td></tr>
|
|
||||||
<tr><td class="num">505</td><td> </td><td><a href="https://github.com/p3/regal/tree/master/doc/extensions">REGAL_log</a></td></tr>
|
|
||||||
<tr><td class="num">506</td><td> </td><td><a href="https://github.com/p3/regal/tree/master/doc/extensions">REGAL_proc_address</a></td></tr>
|
|
||||||
<tr><td><br></td><td></td><td></td></tr>
|
|
||||||
<tr><td class="num">507</td><td> </td><td><a href="http://www.opengl.org/registry/specs/REND/screen_coordinates.txt">REND_screen_coordinates</a></td></tr>
|
|
||||||
<tr><td><br></td><td></td><td></td></tr>
|
|
||||||
<tr><td class="num">508</td><td> </td><td><a href="http://www.opengl.org/registry/specs/S3/s3tc.txt">S3_s3tc</a></td></tr>
|
|
||||||
<tr><td><br></td><td></td><td></td></tr>
|
|
||||||
<tr><td class="num">509</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIS/color_range.txt">SGIS_color_range</a></td></tr>
|
|
||||||
<tr><td class="num">510</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIS/detail_texture.txt">SGIS_detail_texture</a></td></tr>
|
|
||||||
<tr><td class="num">511</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIS/fog_func.txt">SGIS_fog_function</a></td></tr>
|
|
||||||
<tr><td class="num">512</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIS/generate_mipmap.txt">SGIS_generate_mipmap</a></td></tr>
|
|
||||||
<tr><td class="num">513</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIS/multisample.txt">SGIS_multisample</a></td></tr>
|
|
||||||
<tr><td class="num">514</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIS/pixel_texture.txt">SGIS_pixel_texture</a></td></tr>
|
|
||||||
<tr><td class="num">515</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIS/point_line_texgen.txt">SGIS_point_line_texgen</a></td></tr>
|
|
||||||
<tr><td class="num">516</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIS/sharpen_texture.txt">SGIS_sharpen_texture</a></td></tr>
|
|
||||||
<tr><td class="num">517</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIS/texture4D.txt">SGIS_texture4D</a></td></tr>
|
|
||||||
<tr><td class="num">518</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIS/texture_border_clamp.txt">SGIS_texture_border_clamp</a></td></tr>
|
|
||||||
<tr><td class="num">519</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIS/texture_edge_clamp.txt">SGIS_texture_edge_clamp</a></td></tr>
|
|
||||||
<tr><td class="num">520</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIS/texture_filter4.txt">SGIS_texture_filter4</a></td></tr>
|
|
||||||
<tr><td class="num">521</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIS/texture_lod.txt">SGIS_texture_lod</a></td></tr>
|
|
||||||
<tr><td class="num">522</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIS/texture_select.txt">SGIS_texture_select</a></td></tr>
|
|
||||||
<tr><td><br></td><td></td><td></td></tr>
|
|
||||||
<tr><td class="num">523</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/async.txt">SGIX_async</a></td></tr>
|
|
||||||
<tr><td class="num">524</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/async_histogram.txt">SGIX_async_histogram</a></td></tr>
|
|
||||||
<tr><td class="num">525</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/async_pixel.txt">SGIX_async_pixel</a></td></tr>
|
|
||||||
<tr><td class="num">526</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/blend_alpha_minmax.txt">SGIX_blend_alpha_minmax</a></td></tr>
|
|
||||||
<tr><td class="num">527</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/clipmap.txt">SGIX_clipmap</a></td></tr>
|
|
||||||
<tr><td class="num">528</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/convolution_accuracy.txt">SGIX_convolution_accuracy</a></td></tr>
|
|
||||||
<tr><td class="num">529</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/depth_texture.txt">SGIX_depth_texture</a></td></tr>
|
|
||||||
<tr><td class="num">530</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/flush_raster.txt">SGIX_flush_raster</a></td></tr>
|
|
||||||
<tr><td class="num">531</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/fog_offset.txt">SGIX_fog_offset</a></td></tr>
|
|
||||||
<tr><td class="num">532</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/fog_texture.txt">SGIX_fog_texture</a></td></tr>
|
|
||||||
<tr><td class="num">533</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/fragment_specular_lighting.txt">SGIX_fragment_specular_lighting</a></td></tr>
|
|
||||||
<tr><td class="num">534</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/framezoom.txt">SGIX_framezoom</a></td></tr>
|
|
||||||
<tr><td class="num">535</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/interlace.txt">SGIX_interlace</a></td></tr>
|
|
||||||
<tr><td class="num">536</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/ir_instrument1.txt">SGIX_ir_instrument1</a></td></tr>
|
|
||||||
<tr><td class="num">537</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/list_priority.txt">SGIX_list_priority</a></td></tr>
|
|
||||||
<tr><td class="num">538</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/sgix_pixel_texture.txt">SGIX_pixel_texture</a></td></tr>
|
|
||||||
<tr><td class="num">539</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/pixel_texture_bits.txt">SGIX_pixel_texture_bits</a></td></tr>
|
|
||||||
<tr><td class="num">540</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/reference_plane.txt">SGIX_reference_plane</a></td></tr>
|
|
||||||
<tr><td class="num">541</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/resample.txt">SGIX_resample</a></td></tr>
|
|
||||||
<tr><td class="num">542</td><td> </td><td><a href="http://oss.sgi.com/projects/ogl-sample/registry/SGIX/shadow.txt">SGIX_shadow</a></td></tr>
|
|
||||||
<tr><td class="num">543</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/shadow_ambient.txt">SGIX_shadow_ambient</a></td></tr>
|
|
||||||
<tr><td class="num">544</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/sprite.txt">SGIX_sprite</a></td></tr>
|
|
||||||
<tr><td class="num">545</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/tag_sample_buffer.txt">SGIX_tag_sample_buffer</a></td></tr>
|
|
||||||
<tr><td class="num">546</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/texture_env_add.txt">SGIX_texture_add_env</a></td></tr>
|
|
||||||
<tr><td class="num">547</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/texture_coordinate_clamp.txt">SGIX_texture_coordinate_clamp</a></td></tr>
|
|
||||||
<tr><td class="num">548</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/texture_lod_bias.txt">SGIX_texture_lod_bias</a></td></tr>
|
|
||||||
<tr><td class="num">549</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/texture_multi_buffer.txt">SGIX_texture_multi_buffer</a></td></tr>
|
|
||||||
<tr><td class="num">550</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/texture_range.txt">SGIX_texture_range</a></td></tr>
|
|
||||||
<tr><td class="num">551</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/texture_scale_bias.txt">SGIX_texture_scale_bias</a></td></tr>
|
|
||||||
<tr><td class="num">552</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/vertex_preclip.txt">SGIX_vertex_preclip</a></td></tr>
|
|
||||||
<tr><td class="num">553</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/vertex_preclip.txt">SGIX_vertex_preclip_hint</a></td></tr>
|
|
||||||
<tr><td class="num">554</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/ycrcb.txt">SGIX_ycrcb</a></td></tr>
|
|
||||||
<tr><td><br></td><td></td><td></td></tr>
|
|
||||||
<tr><td class="num">555</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGI/color_matrix.txt">SGI_color_matrix</a></td></tr>
|
|
||||||
<tr><td class="num">556</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGI/color_table.txt">SGI_color_table</a></td></tr>
|
|
||||||
<tr><td class="num">557</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGI/texture_color_table.txt">SGI_texture_color_table</a></td></tr>
|
|
||||||
<tr><td><br></td><td></td><td></td></tr>
|
|
||||||
<tr><td class="num">558</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SUNX/constant_data.txt">SUNX_constant_data</a></td></tr>
|
|
||||||
<tr><td><br></td><td></td><td></td></tr>
|
|
||||||
<tr><td class="num">559</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SUN/convolution_border_modes.txt">SUN_convolution_border_modes</a></td></tr>
|
|
||||||
<tr><td class="num">560</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SUN/global_alpha.txt">SUN_global_alpha</a></td></tr>
|
|
||||||
<tr><td class="num">561</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SUN/mesh_array.txt">SUN_mesh_array</a></td></tr>
|
|
||||||
<tr><td class="num">562</td><td> </td><td><a href="http://wwws.sun.com/software/graphics/opengl/extensions/gl_sun_read_video_pixels.txt">SUN_read_video_pixels</a></td></tr>
|
|
||||||
<tr><td class="num">563</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SUN/slice_accum.txt">SUN_slice_accum</a></td></tr>
|
|
||||||
<tr><td class="num">564</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SUN/triangle_list.txt">SUN_triangle_list</a></td></tr>
|
|
||||||
<tr><td class="num">565</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SUN/vertex.txt">SUN_vertex</a></td></tr>
|
|
||||||
<tr><td><br></td><td></td><td></td></tr>
|
|
||||||
<tr><td class="num">566</td><td> </td><td><a href="http://www.opengl.org/registry/specs/WIN/phong_shading.txt">WIN_phong_shading</a></td></tr>
|
|
||||||
<tr><td class="num">567</td><td> </td><td><a href="http://www.opengl.org/registry/specs/WIN/specular_fog.txt">WIN_specular_fog</a></td></tr>
|
|
||||||
<tr><td class="num">568</td><td> </td><td><a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/opengl/glfunc01_16zy.asp">WIN_swap_hint</a></td></tr>
|
|
||||||
</table>
|
|
||||||
<!-- begin footer.html -->
|
|
||||||
</td></tr></table></body>
|
|
||||||
<!-- end footer.html -->
|
|
||||||
|
|
||||||
BIN
kraken_win/3rdparty/glew/glew-1.13.0/doc/glew.png
vendored
BIN
kraken_win/3rdparty/glew/glew-1.13.0/doc/glew.png
vendored
Binary file not shown.
|
Before Width: | Height: | Size: 9.1 KiB |
@@ -1,28 +0,0 @@
|
|||||||
The OpenGL Extension Wrangler Library
|
|
||||||
Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
|
|
||||||
Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
|
|
||||||
Copyright (C) 2002, Lev Povalahev
|
|
||||||
All rights reserved.
|
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
|
||||||
modification, are permitted provided that the following conditions are met:
|
|
||||||
|
|
||||||
* Redistributions of source code must retain the above copyright notice,
|
|
||||||
this list of conditions and the following disclaimer.
|
|
||||||
* Redistributions in binary form must reproduce the above copyright notice,
|
|
||||||
this list of conditions and the following disclaimer in the documentation
|
|
||||||
and/or other materials provided with the distribution.
|
|
||||||
* The name of the author may be used to endorse or promote products
|
|
||||||
derived from this software without specific prior written permission.
|
|
||||||
|
|
||||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
|
||||||
THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
179
kraken_win/3rdparty/glew/glew-1.13.0/doc/glxew.html
vendored
179
kraken_win/3rdparty/glew/glew-1.13.0/doc/glxew.html
vendored
@@ -1,179 +0,0 @@
|
|||||||
<!-- begin header.html -->
|
|
||||||
<!--
|
|
||||||
The OpenGL Extension Wrangler Library
|
|
||||||
Copyright (C) 2008-2015, Nigel Stewart <nigels[]users sourceforge net>
|
|
||||||
Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
|
|
||||||
Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
|
|
||||||
Copyright (C) 2002, Lev Povalahev
|
|
||||||
All rights reserved.
|
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
|
||||||
modification, are permitted provided that the following conditions are met:
|
|
||||||
|
|
||||||
* Redistributions of source code must retain the above copyright notice,
|
|
||||||
this list of conditions and the following disclaimer.
|
|
||||||
* Redistributions in binary form must reproduce the above copyright notice,
|
|
||||||
this list of conditions and the following disclaimer in the documentation
|
|
||||||
and/or other materials provided with the distribution.
|
|
||||||
* The name of the author may be used to endorse or promote products
|
|
||||||
derived from this software without specific prior written permission.
|
|
||||||
|
|
||||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
|
||||||
THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
-->
|
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html/4/loose.dtd">
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<title>GLEW: The OpenGL Extension Wrangler Library</title>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
|
||||||
<link href="glew.css" type="text/css" rel="stylesheet">
|
|
||||||
</head>
|
|
||||||
<body bgcolor="#fff0d0">
|
|
||||||
<table border="0" width="100%" cellpadding="12" cellspacing="8" style="height:100%">
|
|
||||||
<tr>
|
|
||||||
<td bgcolor="#ffffff" align="left" valign="top" width="200">
|
|
||||||
<table border="0" width="100%" cellpadding="0" cellspacing="0" align="left">
|
|
||||||
<tr>
|
|
||||||
<td valign="top">
|
|
||||||
|
|
||||||
<table border="0" width="100%" cellpadding="0" cellspacing="0" align="left">
|
|
||||||
<tr><td align="center"><i>Latest Release: <a href="https://sourceforge.net/projects/glew/files/glew/1.13.0/">1.13.0</a></i></td></tr>
|
|
||||||
<tr><td align="center"><br></td></tr>
|
|
||||||
<tr><td align="center"><img src="./glew.png" alt="GLEW Logo" width="97" height="75"></td></tr>
|
|
||||||
<tr><td align="center"><br></td></tr>
|
|
||||||
<tr><td align="center">
|
|
||||||
<table border="0" cellpadding="0" cellspacing="0" align="center">
|
|
||||||
<tr><td align="center"><a href="index.html">Download</a></td></tr>
|
|
||||||
<tr><td align="center"><a href="basic.html">Usage</a></td></tr>
|
|
||||||
<tr><td align="center"><a href="build.html">Building</a></td></tr>
|
|
||||||
<tr><td align="center"><a href="install.html">Installation</a></td></tr>
|
|
||||||
<tr><td align="center"><a href="advanced.html">Source Generation</a></td></tr>
|
|
||||||
<tr><td align="center"><a href="credits.html">Credits & Copyright</a></td></tr>
|
|
||||||
<tr><td align="center"><a href="log.html">Change Log</a></td></tr>
|
|
||||||
<tr></tr>
|
|
||||||
<tr><td align="center"><a href="https://github.com/nigels-com/glew">GitHub</a></td></tr>
|
|
||||||
<tr><td align="center"><a href="https://sourceforge.net/projects/glew">Project Page</a></td></tr>
|
|
||||||
<tr><td align="center"><a href="http://sourceforge.net/p/glew/bugs/">Bug Tracker</a></td></tr>
|
|
||||||
</table>
|
|
||||||
<tr><td align="center"><br></tr>
|
|
||||||
</table>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
|
|
||||||
<td valign="bottom">
|
|
||||||
<table border="0" width="100%" cellpadding="5" cellspacing="0" align="left">
|
|
||||||
<tr><td align="center"><i>Last Update: 08-10-15</i></td></tr>
|
|
||||||
<tr><td align="center">
|
|
||||||
<a href="http://www.opengl.org"><img src="./ogl_sm.jpg" width="68" height="35" border="0" alt="OpenGL Logo"></a><br/>
|
|
||||||
<a href="https://github.com/nigels-com/glew"><img src="github.png" width="70" height="29" border="0" alt="GitHub Logo"></a><br/>
|
|
||||||
<a href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=67586&type=1" width="88" height="31" border="0" alt="SourceForge Logo"></a>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</td>
|
|
||||||
|
|
||||||
<td bgcolor="#ffffff" align="left" valign="top">
|
|
||||||
|
|
||||||
<h1>The OpenGL Extension Wrangler Library</h1>
|
|
||||||
|
|
||||||
<!-- end header.html -->
|
|
||||||
|
|
||||||
|
|
||||||
<h2>Supported GLX Extensions</h2>
|
|
||||||
|
|
||||||
<table border="0" width="100%" cellpadding="1" cellspacing="0" align="center">
|
|
||||||
<tr><td class="num">1</td><td> </td><td><a href="http://www.opengl.org/registry/specs/3DFX/3dfx_multisample.txt">3DFX_multisample</a></td></tr>
|
|
||||||
<tr><td><br></td><td></td><td></td></tr>
|
|
||||||
<tr><td class="num">2</td><td> </td><td><a href="http://www.opengl.org/registry/specs/AMD/glx_gpu_association.txt">AMD_gpu_association</a></td></tr>
|
|
||||||
<tr><td><br></td><td></td><td></td></tr>
|
|
||||||
<tr><td class="num">3</td><td> </td><td><a href="http://www.opengl.org/registry/specs/KHR/context_flush_control.txt">ARB_context_flush_control</a></td></tr>
|
|
||||||
<tr><td class="num">4</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/glx_create_context.txt">ARB_create_context</a></td></tr>
|
|
||||||
<tr><td class="num">5</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/glx_create_context.txt">ARB_create_context_profile</a></td></tr>
|
|
||||||
<tr><td class="num">6</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/glx_create_context_robustness.txt">ARB_create_context_robustness</a></td></tr>
|
|
||||||
<tr><td class="num">7</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/color_buffer_float.txt">ARB_fbconfig_float</a></td></tr>
|
|
||||||
<tr><td class="num">8</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/framebuffer_sRGB.txt">ARB_framebuffer_sRGB</a></td></tr>
|
|
||||||
<tr><td class="num">9</td><td> </td><td><a href="http://oss.sgi.com/projects/ogl-sample/registry/ARB/get_proc_address.txt">ARB_get_proc_address</a></td></tr>
|
|
||||||
<tr><td class="num">10</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/multisample.txt">ARB_multisample</a></td></tr>
|
|
||||||
<tr><td class="num">11</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/glx_robustness_isolation.txt">ARB_robustness_application_isolation</a></td></tr>
|
|
||||||
<tr><td class="num">12</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/glx_robustness_isolation.txt">ARB_robustness_share_group_isolation</a></td></tr>
|
|
||||||
<tr><td class="num">13</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/vertex_buffer_object.txt">ARB_vertex_buffer_object</a></td></tr>
|
|
||||||
<tr><td><br></td><td></td><td></td></tr>
|
|
||||||
<tr><td class="num">14</td><td> </td><td>ATI_pixel_format_float</td></tr>
|
|
||||||
<tr><td class="num">15</td><td> </td><td>ATI_render_texture</td></tr>
|
|
||||||
<tr><td><br></td><td></td><td></td></tr>
|
|
||||||
<tr><td class="num">16</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/glx_buffer_age.txt">EXT_buffer_age</a></td></tr>
|
|
||||||
<tr><td class="num">17</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/glx_create_context_es2_profile.txt">EXT_create_context_es2_profile</a></td></tr>
|
|
||||||
<tr><td class="num">18</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/glx_create_context_es_profile.txt">EXT_create_context_es_profile</a></td></tr>
|
|
||||||
<tr><td class="num">19</td><td> </td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_EXT_packed_float.txt">EXT_fbconfig_packed_float</a></td></tr>
|
|
||||||
<tr><td class="num">20</td><td> </td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_EXT_framebuffer_sRGB.txt">EXT_framebuffer_sRGB</a></td></tr>
|
|
||||||
<tr><td class="num">21</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/import_context.txt">EXT_import_context</a></td></tr>
|
|
||||||
<tr><td class="num">22</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/scene_marker.txt">EXT_scene_marker</a></td></tr>
|
|
||||||
<tr><td class="num">23</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/glx_stereo_tree.txt">EXT_stereo_tree</a></td></tr>
|
|
||||||
<tr><td class="num">24</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/swap_control.txt">EXT_swap_control</a></td></tr>
|
|
||||||
<tr><td class="num">25</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/glx_swap_control_tear.txt">EXT_swap_control_tear</a></td></tr>
|
|
||||||
<tr><td class="num">26</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/texture_from_pixmap.txt">EXT_texture_from_pixmap</a></td></tr>
|
|
||||||
<tr><td class="num">27</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/visual_info.txt">EXT_visual_info</a></td></tr>
|
|
||||||
<tr><td class="num">28</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/visual_rating.txt">EXT_visual_rating</a></td></tr>
|
|
||||||
<tr><td><br></td><td></td><td></td></tr>
|
|
||||||
<tr><td class="num">29</td><td> </td><td><a href="http://www.opengl.org/registry/specs/INTEL/swap_event.txt">INTEL_swap_event</a></td></tr>
|
|
||||||
<tr><td><br></td><td></td><td></td></tr>
|
|
||||||
<tr><td class="num">30</td><td> </td><td><a href="http://www.opengl.org/registry/specs/MESA/agp_offset.txt">MESA_agp_offset</a></td></tr>
|
|
||||||
<tr><td class="num">31</td><td> </td><td><a href="http://www.opengl.org/registry/specs/MESA/copy_sub_buffer.txt">MESA_copy_sub_buffer</a></td></tr>
|
|
||||||
<tr><td class="num">32</td><td> </td><td><a href="http://www.opengl.org/registry/specs/MESA/pixmap_colormap.txt">MESA_pixmap_colormap</a></td></tr>
|
|
||||||
<tr><td class="num">33</td><td> </td><td><a href="http://www.opengl.org/registry/specs/MESA/glx_query_renderer.txt">MESA_query_renderer</a></td></tr>
|
|
||||||
<tr><td class="num">34</td><td> </td><td><a href="http://www.opengl.org/registry/specs/MESA/release_buffers.txt">MESA_release_buffers</a></td></tr>
|
|
||||||
<tr><td class="num">35</td><td> </td><td><a href="http://www.opengl.org/registry/specs/MESA/set_3dfx_mode.txt">MESA_set_3dfx_mode</a></td></tr>
|
|
||||||
<tr><td class="num">36</td><td> </td><td><a href="http://cgit.freedesktop.org/mesa/mesa/plain/docs/MESA_swap_control.spec">MESA_swap_control</a></td></tr>
|
|
||||||
<tr><td><br></td><td></td><td></td></tr>
|
|
||||||
<tr><td class="num">37</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/glx_copy_buffer.txt">NV_copy_buffer</a></td></tr>
|
|
||||||
<tr><td class="num">38</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/copy_image.txt">NV_copy_image</a></td></tr>
|
|
||||||
<tr><td class="num">39</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/glx_delay_before_swap.txt">NV_delay_before_swap</a></td></tr>
|
|
||||||
<tr><td class="num">40</td><td> </td><td><a href="http://cvs1.nvidia.com/inc/GL/glxtokens.h">NV_float_buffer</a></td></tr>
|
|
||||||
<tr><td class="num">41</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/multisample_coverage.txt">NV_multisample_coverage</a></td></tr>
|
|
||||||
<tr><td class="num">42</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/present_video.txt">NV_present_video</a></td></tr>
|
|
||||||
<tr><td class="num">43</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/glx_swap_group.txt">NV_swap_group</a></td></tr>
|
|
||||||
<tr><td class="num">44</td><td> </td><td><a href="http://oss.sgi.com/projects/ogl-sample/registry/NV/vertex_array_range.txt">NV_vertex_array_range</a></td></tr>
|
|
||||||
<tr><td class="num">45</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/video_capture.txt">NV_video_capture</a></td></tr>
|
|
||||||
<tr><td class="num">46</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/glx_video_output.txt">NV_video_out</a></td></tr>
|
|
||||||
<tr><td><br></td><td></td><td></td></tr>
|
|
||||||
<tr><td class="num">47</td><td> </td><td><a href="http://www.opengl.org/registry/specs/OML/glx_swap_method.txt">OML_swap_method</a></td></tr>
|
|
||||||
<tr><td class="num">48</td><td> </td><td><a href="http://www.opengl.org/registry/specs/OML/glx_sync_control.txt">OML_sync_control</a></td></tr>
|
|
||||||
<tr><td><br></td><td></td><td></td></tr>
|
|
||||||
<tr><td class="num">49</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIS/blended_overlay.txt">SGIS_blended_overlay</a></td></tr>
|
|
||||||
<tr><td class="num">50</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIS/color_range.txt">SGIS_color_range</a></td></tr>
|
|
||||||
<tr><td class="num">51</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIS/multisample.txt">SGIS_multisample</a></td></tr>
|
|
||||||
<tr><td class="num">52</td><td> </td><td>SGIS_shared_multisample</td></tr>
|
|
||||||
<tr><td><br></td><td></td><td></td></tr>
|
|
||||||
<tr><td class="num">53</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/fbconfig.txt">SGIX_fbconfig</a></td></tr>
|
|
||||||
<tr><td class="num">54</td><td> </td><td><a href="http://oss.sgi.com/projects/ogl-sample/registry/SGIX/hyperpipe_group.txt">SGIX_hyperpipe</a></td></tr>
|
|
||||||
<tr><td class="num">55</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/pbuffer.txt">SGIX_pbuffer</a></td></tr>
|
|
||||||
<tr><td class="num">56</td><td> </td><td><a href="http://oss.sgi.com/projects/ogl-sample/registry/SGIX/swap_barrier.txt">SGIX_swap_barrier</a></td></tr>
|
|
||||||
<tr><td class="num">57</td><td> </td><td><a href="http://oss.sgi.com/projects/ogl-sample/registry/SGIX/swap_group.txt">SGIX_swap_group</a></td></tr>
|
|
||||||
<tr><td class="num">58</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/video_resize.txt">SGIX_video_resize</a></td></tr>
|
|
||||||
<tr><td class="num">59</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGIX/visual_select_group.txt">SGIX_visual_select_group</a></td></tr>
|
|
||||||
<tr><td><br></td><td></td><td></td></tr>
|
|
||||||
<tr><td class="num">60</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGI/cushion.txt">SGI_cushion</a></td></tr>
|
|
||||||
<tr><td class="num">61</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGI/make_current_read.txt">SGI_make_current_read</a></td></tr>
|
|
||||||
<tr><td class="num">62</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGI/swap_control.txt">SGI_swap_control</a></td></tr>
|
|
||||||
<tr><td class="num">63</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SGI/video_sync.txt">SGI_video_sync</a></td></tr>
|
|
||||||
<tr><td><br></td><td></td><td></td></tr>
|
|
||||||
<tr><td class="num">64</td><td> </td><td><a href="http://www.opengl.org/registry/specs/SUN/get_transparent_index.txt">SUN_get_transparent_index</a></td></tr>
|
|
||||||
<tr><td class="num">65</td><td> </td><td><a href="http://wwws.sun.com/software/graphics/opengl/extensions/glx_sun_video_resize.txt">SUN_video_resize</a></td></tr>
|
|
||||||
</table>
|
|
||||||
<!-- begin footer.html -->
|
|
||||||
</td></tr></table></body>
|
|
||||||
<!-- end footer.html -->
|
|
||||||
|
|
||||||
340
kraken_win/3rdparty/glew/glew-1.13.0/doc/gpl.txt
vendored
340
kraken_win/3rdparty/glew/glew-1.13.0/doc/gpl.txt
vendored
@@ -1,340 +0,0 @@
|
|||||||
GNU GENERAL PUBLIC LICENSE
|
|
||||||
Version 2, June 1991
|
|
||||||
|
|
||||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
|
||||||
51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
Everyone is permitted to copy and distribute verbatim copies
|
|
||||||
of this license document, but changing it is not allowed.
|
|
||||||
|
|
||||||
Preamble
|
|
||||||
|
|
||||||
The licenses for most software are designed to take away your
|
|
||||||
freedom to share and change it. By contrast, the GNU General Public
|
|
||||||
License is intended to guarantee your freedom to share and change free
|
|
||||||
software--to make sure the software is free for all its users. This
|
|
||||||
General Public License applies to most of the Free Software
|
|
||||||
Foundation's software and to any other program whose authors commit to
|
|
||||||
using it. (Some other Free Software Foundation software is covered by
|
|
||||||
the GNU Library General Public License instead.) You can apply it to
|
|
||||||
your programs, too.
|
|
||||||
|
|
||||||
When we speak of free software, we are referring to freedom, not
|
|
||||||
price. Our General Public Licenses are designed to make sure that you
|
|
||||||
have the freedom to distribute copies of free software (and charge for
|
|
||||||
this service if you wish), that you receive source code or can get it
|
|
||||||
if you want it, that you can change the software or use pieces of it
|
|
||||||
in new free programs; and that you know you can do these things.
|
|
||||||
|
|
||||||
To protect your rights, we need to make restrictions that forbid
|
|
||||||
anyone to deny you these rights or to ask you to surrender the rights.
|
|
||||||
These restrictions translate to certain responsibilities for you if you
|
|
||||||
distribute copies of the software, or if you modify it.
|
|
||||||
|
|
||||||
For example, if you distribute copies of such a program, whether
|
|
||||||
gratis or for a fee, you must give the recipients all the rights that
|
|
||||||
you have. You must make sure that they, too, receive or can get the
|
|
||||||
source code. And you must show them these terms so they know their
|
|
||||||
rights.
|
|
||||||
|
|
||||||
We protect your rights with two steps: (1) copyright the software, and
|
|
||||||
(2) offer you this license which gives you legal permission to copy,
|
|
||||||
distribute and/or modify the software.
|
|
||||||
|
|
||||||
Also, for each author's protection and ours, we want to make certain
|
|
||||||
that everyone understands that there is no warranty for this free
|
|
||||||
software. If the software is modified by someone else and passed on, we
|
|
||||||
want its recipients to know that what they have is not the original, so
|
|
||||||
that any problems introduced by others will not reflect on the original
|
|
||||||
authors' reputations.
|
|
||||||
|
|
||||||
Finally, any free program is threatened constantly by software
|
|
||||||
patents. We wish to avoid the danger that redistributors of a free
|
|
||||||
program will individually obtain patent licenses, in effect making the
|
|
||||||
program proprietary. To prevent this, we have made it clear that any
|
|
||||||
patent must be licensed for everyone's free use or not licensed at all.
|
|
||||||
|
|
||||||
The precise terms and conditions for copying, distribution and
|
|
||||||
modification follow.
|
|
||||||
|
|
||||||
GNU GENERAL PUBLIC LICENSE
|
|
||||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
|
||||||
|
|
||||||
0. This License applies to any program or other work which contains
|
|
||||||
a notice placed by the copyright holder saying it may be distributed
|
|
||||||
under the terms of this General Public License. The "Program", below,
|
|
||||||
refers to any such program or work, and a "work based on the Program"
|
|
||||||
means either the Program or any derivative work under copyright law:
|
|
||||||
that is to say, a work containing the Program or a portion of it,
|
|
||||||
either verbatim or with modifications and/or translated into another
|
|
||||||
language. (Hereinafter, translation is included without limitation in
|
|
||||||
the term "modification".) Each licensee is addressed as "you".
|
|
||||||
|
|
||||||
Activities other than copying, distribution and modification are not
|
|
||||||
covered by this License; they are outside its scope. The act of
|
|
||||||
running the Program is not restricted, and the output from the Program
|
|
||||||
is covered only if its contents constitute a work based on the
|
|
||||||
Program (independent of having been made by running the Program).
|
|
||||||
Whether that is true depends on what the Program does.
|
|
||||||
|
|
||||||
1. You may copy and distribute verbatim copies of the Program's
|
|
||||||
source code as you receive it, in any medium, provided that you
|
|
||||||
conspicuously and appropriately publish on each copy an appropriate
|
|
||||||
copyright notice and disclaimer of warranty; keep intact all the
|
|
||||||
notices that refer to this License and to the absence of any warranty;
|
|
||||||
and give any other recipients of the Program a copy of this License
|
|
||||||
along with the Program.
|
|
||||||
|
|
||||||
You may charge a fee for the physical act of transferring a copy, and
|
|
||||||
you may at your option offer warranty protection in exchange for a fee.
|
|
||||||
|
|
||||||
2. You may modify your copy or copies of the Program or any portion
|
|
||||||
of it, thus forming a work based on the Program, and copy and
|
|
||||||
distribute such modifications or work under the terms of Section 1
|
|
||||||
above, provided that you also meet all of these conditions:
|
|
||||||
|
|
||||||
a) You must cause the modified files to carry prominent notices
|
|
||||||
stating that you changed the files and the date of any change.
|
|
||||||
|
|
||||||
b) You must cause any work that you distribute or publish, that in
|
|
||||||
whole or in part contains or is derived from the Program or any
|
|
||||||
part thereof, to be licensed as a whole at no charge to all third
|
|
||||||
parties under the terms of this License.
|
|
||||||
|
|
||||||
c) If the modified program normally reads commands interactively
|
|
||||||
when run, you must cause it, when started running for such
|
|
||||||
interactive use in the most ordinary way, to print or display an
|
|
||||||
announcement including an appropriate copyright notice and a
|
|
||||||
notice that there is no warranty (or else, saying that you provide
|
|
||||||
a warranty) and that users may redistribute the program under
|
|
||||||
these conditions, and telling the user how to view a copy of this
|
|
||||||
License. (Exception: if the Program itself is interactive but
|
|
||||||
does not normally print such an announcement, your work based on
|
|
||||||
the Program is not required to print an announcement.)
|
|
||||||
|
|
||||||
These requirements apply to the modified work as a whole. If
|
|
||||||
identifiable sections of that work are not derived from the Program,
|
|
||||||
and can be reasonably considered independent and separate works in
|
|
||||||
themselves, then this License, and its terms, do not apply to those
|
|
||||||
sections when you distribute them as separate works. But when you
|
|
||||||
distribute the same sections as part of a whole which is a work based
|
|
||||||
on the Program, the distribution of the whole must be on the terms of
|
|
||||||
this License, whose permissions for other licensees extend to the
|
|
||||||
entire whole, and thus to each and every part regardless of who wrote it.
|
|
||||||
|
|
||||||
Thus, it is not the intent of this section to claim rights or contest
|
|
||||||
your rights to work written entirely by you; rather, the intent is to
|
|
||||||
exercise the right to control the distribution of derivative or
|
|
||||||
collective works based on the Program.
|
|
||||||
|
|
||||||
In addition, mere aggregation of another work not based on the Program
|
|
||||||
with the Program (or with a work based on the Program) on a volume of
|
|
||||||
a storage or distribution medium does not bring the other work under
|
|
||||||
the scope of this License.
|
|
||||||
|
|
||||||
3. You may copy and distribute the Program (or a work based on it,
|
|
||||||
under Section 2) in object code or executable form under the terms of
|
|
||||||
Sections 1 and 2 above provided that you also do one of the following:
|
|
||||||
|
|
||||||
a) Accompany it with the complete corresponding machine-readable
|
|
||||||
source code, which must be distributed under the terms of Sections
|
|
||||||
1 and 2 above on a medium customarily used for software interchange; or,
|
|
||||||
|
|
||||||
b) Accompany it with a written offer, valid for at least three
|
|
||||||
years, to give any third party, for a charge no more than your
|
|
||||||
cost of physically performing source distribution, a complete
|
|
||||||
machine-readable copy of the corresponding source code, to be
|
|
||||||
distributed under the terms of Sections 1 and 2 above on a medium
|
|
||||||
customarily used for software interchange; or,
|
|
||||||
|
|
||||||
c) Accompany it with the information you received as to the offer
|
|
||||||
to distribute corresponding source code. (This alternative is
|
|
||||||
allowed only for noncommercial distribution and only if you
|
|
||||||
received the program in object code or executable form with such
|
|
||||||
an offer, in accord with Subsection b above.)
|
|
||||||
|
|
||||||
The source code for a work means the preferred form of the work for
|
|
||||||
making modifications to it. For an executable work, complete source
|
|
||||||
code means all the source code for all modules it contains, plus any
|
|
||||||
associated interface definition files, plus the scripts used to
|
|
||||||
control compilation and installation of the executable. However, as a
|
|
||||||
special exception, the source code distributed need not include
|
|
||||||
anything that is normally distributed (in either source or binary
|
|
||||||
form) with the major components (compiler, kernel, and so on) of the
|
|
||||||
operating system on which the executable runs, unless that component
|
|
||||||
itself accompanies the executable.
|
|
||||||
|
|
||||||
If distribution of executable or object code is made by offering
|
|
||||||
access to copy from a designated place, then offering equivalent
|
|
||||||
access to copy the source code from the same place counts as
|
|
||||||
distribution of the source code, even though third parties are not
|
|
||||||
compelled to copy the source along with the object code.
|
|
||||||
|
|
||||||
4. You may not copy, modify, sublicense, or distribute the Program
|
|
||||||
except as expressly provided under this License. Any attempt
|
|
||||||
otherwise to copy, modify, sublicense or distribute the Program is
|
|
||||||
void, and will automatically terminate your rights under this License.
|
|
||||||
However, parties who have received copies, or rights, from you under
|
|
||||||
this License will not have their licenses terminated so long as such
|
|
||||||
parties remain in full compliance.
|
|
||||||
|
|
||||||
5. You are not required to accept this License, since you have not
|
|
||||||
signed it. However, nothing else grants you permission to modify or
|
|
||||||
distribute the Program or its derivative works. These actions are
|
|
||||||
prohibited by law if you do not accept this License. Therefore, by
|
|
||||||
modifying or distributing the Program (or any work based on the
|
|
||||||
Program), you indicate your acceptance of this License to do so, and
|
|
||||||
all its terms and conditions for copying, distributing or modifying
|
|
||||||
the Program or works based on it.
|
|
||||||
|
|
||||||
6. Each time you redistribute the Program (or any work based on the
|
|
||||||
Program), the recipient automatically receives a license from the
|
|
||||||
original licensor to copy, distribute or modify the Program subject to
|
|
||||||
these terms and conditions. You may not impose any further
|
|
||||||
restrictions on the recipients' exercise of the rights granted herein.
|
|
||||||
You are not responsible for enforcing compliance by third parties to
|
|
||||||
this License.
|
|
||||||
|
|
||||||
7. If, as a consequence of a court judgment or allegation of patent
|
|
||||||
infringement or for any other reason (not limited to patent issues),
|
|
||||||
conditions are imposed on you (whether by court order, agreement or
|
|
||||||
otherwise) that contradict the conditions of this License, they do not
|
|
||||||
excuse you from the conditions of this License. If you cannot
|
|
||||||
distribute so as to satisfy simultaneously your obligations under this
|
|
||||||
License and any other pertinent obligations, then as a consequence you
|
|
||||||
may not distribute the Program at all. For example, if a patent
|
|
||||||
license would not permit royalty-free redistribution of the Program by
|
|
||||||
all those who receive copies directly or indirectly through you, then
|
|
||||||
the only way you could satisfy both it and this License would be to
|
|
||||||
refrain entirely from distribution of the Program.
|
|
||||||
|
|
||||||
If any portion of this section is held invalid or unenforceable under
|
|
||||||
any particular circumstance, the balance of the section is intended to
|
|
||||||
apply and the section as a whole is intended to apply in other
|
|
||||||
circumstances.
|
|
||||||
|
|
||||||
It is not the purpose of this section to induce you to infringe any
|
|
||||||
patents or other property right claims or to contest validity of any
|
|
||||||
such claims; this section has the sole purpose of protecting the
|
|
||||||
integrity of the free software distribution system, which is
|
|
||||||
implemented by public license practices. Many people have made
|
|
||||||
generous contributions to the wide range of software distributed
|
|
||||||
through that system in reliance on consistent application of that
|
|
||||||
system; it is up to the author/donor to decide if he or she is willing
|
|
||||||
to distribute software through any other system and a licensee cannot
|
|
||||||
impose that choice.
|
|
||||||
|
|
||||||
This section is intended to make thoroughly clear what is believed to
|
|
||||||
be a consequence of the rest of this License.
|
|
||||||
|
|
||||||
8. If the distribution and/or use of the Program is restricted in
|
|
||||||
certain countries either by patents or by copyrighted interfaces, the
|
|
||||||
original copyright holder who places the Program under this License
|
|
||||||
may add an explicit geographical distribution limitation excluding
|
|
||||||
those countries, so that distribution is permitted only in or among
|
|
||||||
countries not thus excluded. In such case, this License incorporates
|
|
||||||
the limitation as if written in the body of this License.
|
|
||||||
|
|
||||||
9. The Free Software Foundation may publish revised and/or new versions
|
|
||||||
of the General Public License from time to time. Such new versions will
|
|
||||||
be similar in spirit to the present version, but may differ in detail to
|
|
||||||
address new problems or concerns.
|
|
||||||
|
|
||||||
Each version is given a distinguishing version number. If the Program
|
|
||||||
specifies a version number of this License which applies to it and "any
|
|
||||||
later version", you have the option of following the terms and conditions
|
|
||||||
either of that version or of any later version published by the Free
|
|
||||||
Software Foundation. If the Program does not specify a version number of
|
|
||||||
this License, you may choose any version ever published by the Free Software
|
|
||||||
Foundation.
|
|
||||||
|
|
||||||
10. If you wish to incorporate parts of the Program into other free
|
|
||||||
programs whose distribution conditions are different, write to the author
|
|
||||||
to ask for permission. For software which is copyrighted by the Free
|
|
||||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
|
||||||
make exceptions for this. Our decision will be guided by the two goals
|
|
||||||
of preserving the free status of all derivatives of our free software and
|
|
||||||
of promoting the sharing and reuse of software generally.
|
|
||||||
|
|
||||||
NO WARRANTY
|
|
||||||
|
|
||||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
|
||||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
|
||||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
|
||||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
|
||||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
|
||||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
|
||||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
|
||||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
|
||||||
REPAIR OR CORRECTION.
|
|
||||||
|
|
||||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
|
||||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
|
||||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
|
||||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
|
||||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
|
||||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
|
||||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
|
||||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
|
||||||
POSSIBILITY OF SUCH DAMAGES.
|
|
||||||
|
|
||||||
END OF TERMS AND CONDITIONS
|
|
||||||
|
|
||||||
How to Apply These Terms to Your New Programs
|
|
||||||
|
|
||||||
If you develop a new program, and you want it to be of the greatest
|
|
||||||
possible use to the public, the best way to achieve this is to make it
|
|
||||||
free software which everyone can redistribute and change under these terms.
|
|
||||||
|
|
||||||
To do so, attach the following notices to the program. It is safest
|
|
||||||
to attach them to the start of each source file to most effectively
|
|
||||||
convey the exclusion of warranty; and each file should have at least
|
|
||||||
the "copyright" line and a pointer to where the full notice is found.
|
|
||||||
|
|
||||||
<one line to give the program's name and a brief idea of what it does.>
|
|
||||||
Copyright (C) <year> <name of author>
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with this program; if not, write to the Free Software
|
|
||||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
|
|
||||||
|
|
||||||
Also add information on how to contact you by electronic and paper mail.
|
|
||||||
|
|
||||||
If the program is interactive, make it output a short notice like this
|
|
||||||
when it starts in an interactive mode:
|
|
||||||
|
|
||||||
Gnomovision version 69, Copyright (C) year name of author
|
|
||||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
|
||||||
This is free software, and you are welcome to redistribute it
|
|
||||||
under certain conditions; type `show c' for details.
|
|
||||||
|
|
||||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
|
||||||
parts of the General Public License. Of course, the commands you use may
|
|
||||||
be called something other than `show w' and `show c'; they could even be
|
|
||||||
mouse-clicks or menu items--whatever suits your program.
|
|
||||||
|
|
||||||
You should also get your employer (if you work as a programmer) or your
|
|
||||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
|
||||||
necessary. Here is a sample; alter the names:
|
|
||||||
|
|
||||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
|
||||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
|
||||||
|
|
||||||
<signature of Ty Coon>, 1 April 1989
|
|
||||||
Ty Coon, President of Vice
|
|
||||||
|
|
||||||
This General Public License does not permit incorporating your program into
|
|
||||||
proprietary programs. If your program is a subroutine library, you may
|
|
||||||
consider it more useful to permit linking proprietary applications with the
|
|
||||||
library. If this is what you want to do, use the GNU Library General
|
|
||||||
Public License instead of this License.
|
|
||||||
219
kraken_win/3rdparty/glew/glew-1.13.0/doc/index.html
vendored
219
kraken_win/3rdparty/glew/glew-1.13.0/doc/index.html
vendored
@@ -1,219 +0,0 @@
|
|||||||
<!-- begin header.html -->
|
|
||||||
<!--
|
|
||||||
The OpenGL Extension Wrangler Library
|
|
||||||
Copyright (C) 2008-2015, Nigel Stewart <nigels[]users sourceforge net>
|
|
||||||
Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
|
|
||||||
Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
|
|
||||||
Copyright (C) 2002, Lev Povalahev
|
|
||||||
All rights reserved.
|
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
|
||||||
modification, are permitted provided that the following conditions are met:
|
|
||||||
|
|
||||||
* Redistributions of source code must retain the above copyright notice,
|
|
||||||
this list of conditions and the following disclaimer.
|
|
||||||
* Redistributions in binary form must reproduce the above copyright notice,
|
|
||||||
this list of conditions and the following disclaimer in the documentation
|
|
||||||
and/or other materials provided with the distribution.
|
|
||||||
* The name of the author may be used to endorse or promote products
|
|
||||||
derived from this software without specific prior written permission.
|
|
||||||
|
|
||||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
|
||||||
THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
-->
|
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html/4/loose.dtd">
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<title>GLEW: The OpenGL Extension Wrangler Library</title>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
|
||||||
<link href="glew.css" type="text/css" rel="stylesheet">
|
|
||||||
</head>
|
|
||||||
<body bgcolor="#fff0d0">
|
|
||||||
<table border="0" width="100%" cellpadding="12" cellspacing="8" style="height:100%">
|
|
||||||
<tr>
|
|
||||||
<td bgcolor="#ffffff" align="left" valign="top" width="200">
|
|
||||||
<table border="0" width="100%" cellpadding="0" cellspacing="0" align="left">
|
|
||||||
<tr>
|
|
||||||
<td valign="top">
|
|
||||||
|
|
||||||
<table border="0" width="100%" cellpadding="0" cellspacing="0" align="left">
|
|
||||||
<tr><td align="center"><i>Latest Release: <a href="https://sourceforge.net/projects/glew/files/glew/1.13.0/">1.13.0</a></i></td></tr>
|
|
||||||
<tr><td align="center"><br></td></tr>
|
|
||||||
<tr><td align="center"><img src="./glew.png" alt="GLEW Logo" width="97" height="75"></td></tr>
|
|
||||||
<tr><td align="center"><br></td></tr>
|
|
||||||
<tr><td align="center">
|
|
||||||
<table border="0" cellpadding="0" cellspacing="0" align="center">
|
|
||||||
<tr><td align="center">Download</td></tr>
|
|
||||||
<tr><td align="center"><a href="basic.html">Usage</a></td></tr>
|
|
||||||
<tr><td align="center"><a href="build.html">Building</a></td></tr>
|
|
||||||
<tr><td align="center"><a href="install.html">Installation</a></td></tr>
|
|
||||||
<tr><td align="center"><a href="advanced.html">Source Generation</a></td></tr>
|
|
||||||
<tr><td align="center"><a href="credits.html">Credits & Copyright</a></td></tr>
|
|
||||||
<tr><td align="center"><a href="log.html">Change Log</a></td></tr>
|
|
||||||
<tr></tr>
|
|
||||||
<tr><td align="center"><a href="https://github.com/nigels-com/glew">GitHub</a></td></tr>
|
|
||||||
<tr><td align="center"><a href="https://sourceforge.net/projects/glew">Project Page</a></td></tr>
|
|
||||||
<tr><td align="center"><a href="http://sourceforge.net/p/glew/bugs/">Bug Tracker</a></td></tr>
|
|
||||||
</table>
|
|
||||||
<tr><td align="center"><br></tr>
|
|
||||||
</table>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
|
|
||||||
<td valign="bottom">
|
|
||||||
<table border="0" width="100%" cellpadding="5" cellspacing="0" align="left">
|
|
||||||
<tr><td align="center"><i>Last Update: 08-10-15</i></td></tr>
|
|
||||||
<tr><td align="center">
|
|
||||||
<a href="http://www.opengl.org"><img src="./ogl_sm.jpg" width="68" height="35" border="0" alt="OpenGL Logo"></a><br/>
|
|
||||||
<a href="https://github.com/nigels-com/glew"><img src="github.png" width="70" height="29" border="0" alt="GitHub Logo"></a><br/>
|
|
||||||
<a href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=67586&type=1" width="88" height="31" border="0" alt="SourceForge Logo"></a>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</td>
|
|
||||||
|
|
||||||
<td bgcolor="#ffffff" align="left" valign="top">
|
|
||||||
|
|
||||||
<h1>The OpenGL Extension Wrangler Library</h1>
|
|
||||||
|
|
||||||
<!-- end header.html -->
|
|
||||||
|
|
||||||
|
|
||||||
<p>
|
|
||||||
The OpenGL Extension Wrangler Library (GLEW) is a cross-platform
|
|
||||||
open-source C/C++ extension loading library. GLEW provides efficient
|
|
||||||
run-time mechanisms for determining which OpenGL extensions are
|
|
||||||
supported on the target platform. OpenGL core and extension
|
|
||||||
functionality is exposed in a single header file. GLEW has been
|
|
||||||
tested on a variety of operating systems, including Windows, Linux,
|
|
||||||
Mac OS X, FreeBSD, Irix, and Solaris.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h2>Downloads</h2>
|
|
||||||
<p>
|
|
||||||
<a href="http://sourceforge.net/projects/glew/">GLEW</a> is distributed
|
|
||||||
as source and precompiled binaries.<br/>
|
|
||||||
The latest release is
|
|
||||||
<a href="https://sourceforge.net/projects/glew/files/glew/1.13.0/">1.13.0</a>[08-10-15]:
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<table border="1" cellpadding="5" cellspacing="0" bgcolor="#f0f0f0" align="center">
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<table border="0" cellpadding="3" cellspacing="0">
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td align="right"><b>Source</b></td>
|
|
||||||
<td></td>
|
|
||||||
<td align="left">
|
|
||||||
<a href="https://sourceforge.net/projects/glew/files/glew/1.13.0/glew-1.13.0.zip/download">ZIP</a> |
|
|
||||||
<a href="https://sourceforge.net/projects/glew/files/glew/1.13.0/glew-1.13.0.tgz/download">TGZ</a></td>
|
|
||||||
<td></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td align="right"><b>Binaries</b></td>
|
|
||||||
<td></td>
|
|
||||||
<td align="left">
|
|
||||||
<a href="https://sourceforge.net/projects/glew/files/glew/1.13.0/glew-1.13.0-win32.zip/download">Windows 32-bit and 64-bit</a>
|
|
||||||
</td>
|
|
||||||
<td></td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<p></p>
|
|
||||||
<p>
|
|
||||||
An up-to-date copy is also available using <a href="http://git-scm.com/">git</a>:
|
|
||||||
</p>
|
|
||||||
<ul>
|
|
||||||
<li><a href="https://github.com/nigels-com/glew">github</a><br/>
|
|
||||||
<tt>git clone https://github.com/nigels-com/glew.git glew</tt><br/> </li>
|
|
||||||
<li><a href="https://sourceforge.net/p/glew/code">Sourceforge</a><br/>
|
|
||||||
<tt>git clone git://git.code.sf.net/p/glew/code glew</tt><br/> </li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<p></p>
|
|
||||||
<p>
|
|
||||||
<a href="https://sourceforge.net/projects/glew/files/glew/snapshots/">Unsupported snapshots</a> are also available:
|
|
||||||
</p>
|
|
||||||
<ul>
|
|
||||||
<li><a href="http://sourceforge.net/projects/glew/files/glew/snapshots/glew-20150805.tgz/download">glew-20150805.tgz</a></li>
|
|
||||||
<li><a href="http://sourceforge.net/projects/glew/files/glew/snapshots/glew-20150124.tgz/download">glew-20150124.tgz</a></li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<h2>Supported Extensions</h2>
|
|
||||||
<p>
|
|
||||||
The latest release contains support for OpenGL 4.5 and the following extensions:
|
|
||||||
</p>
|
|
||||||
<ul>
|
|
||||||
<li><a href="glew.html">OpenGL extensions</a>
|
|
||||||
<li><a href="wglew.html">WGL extensions</a>
|
|
||||||
<li><a href="glxew.html">GLX extensions</a>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<h2>News</h2>
|
|
||||||
<ul>
|
|
||||||
<li>[08-10-15] <a href="https://sourceforge.net/projects/glew/files/glew/1.13.0/">GLEW 1.13.0</a> adds support for new extensions, fixes minor bugs</li>
|
|
||||||
<li>[26-01-15] <a href="https://sourceforge.net/projects/glew/files/glew/1.12.0/">GLEW 1.12.0</a> fixes minor bugs and adds new extensions</li>
|
|
||||||
<li>[08-11-14] <a href="https://sourceforge.net/projects/glew/files/glew/1.11.0/">GLEW 1.11.0</a> adds support for OpenGL 4.5, new extensions</li>
|
|
||||||
<li>[07-22-13] <a href="https://sourceforge.net/projects/glew/files/glew/1.10.0/">GLEW 1.10.0</a> adds support for OpenGL 4.4, new extensions</li>
|
|
||||||
<li>[08-06-12] <a href="https://sourceforge.net/projects/glew/files/glew/1.9.0/">GLEW 1.9.0</a> adds support for OpenGL 4.3, new extensions</li>
|
|
||||||
<li>[07-17-12] <a href="https://sourceforge.net/projects/glew/files/glew/1.8.0/">GLEW 1.8.0</a> fixes minor bugs and adds new extensions</li>
|
|
||||||
<li>[08-26-11] <a href="https://sourceforge.net/projects/glew/files/glew/1.7.0/">GLEW 1.7.0</a> adds support for OpenGL 4.2, new extensions, fixes bugs</li>
|
|
||||||
<li>[04-27-11] <a href="https://sourceforge.net/projects/glew/files/glew/1.6.0/">GLEW 1.6.0</a> fixes minor bugs and adds eight new extensions</li>
|
|
||||||
<li>[01-31-11] <a href="https://sourceforge.net/projects/glew/files/glew/1.5.8/">GLEW 1.5.8</a> fixes minor bugs and adds two new extensions</li>
|
|
||||||
<li>[11-03-10] <a href="https://sourceforge.net/projects/glew/files/glew/1.5.7/">GLEW 1.5.7</a> fixes minor bugs and adds one new extension</li>
|
|
||||||
<li>[09-07-10] <a href="https://sourceforge.net/projects/glew/files/glew/1.5.6/">GLEW 1.5.6</a> adds support for OpenGL 4.1, fixes bugs</li>
|
|
||||||
<li>[07-13-10] <a href="https://sourceforge.net/projects/glew/files/glew/1.5.5/">GLEW 1.5.5</a> fixes minor bugs and adds new extensions</li>
|
|
||||||
<li>[04-21-10] <a href="https://sourceforge.net/projects/glew/files/glew/1.5.4/">GLEW 1.5.4</a> adds support for OpenGL 3.3, OpenGL 4.0 and new extensions, fixes bugs</li>
|
|
||||||
<li>[02-28-10] <a href="https://sourceforge.net/projects/glew/files/glew/1.5.3/">GLEW 1.5.3</a> fixes minor bugs and adds three new extensions</li>
|
|
||||||
<li>[12-31-09] <a href="https://sourceforge.net/projects/glew/files/glew/1.5.2/">GLEW 1.5.2</a> adds support for OpenGL 3.1, OpenGL 3.2 and new extensions</li>
|
|
||||||
<li>[11-03-08] <a href="https://sourceforge.net/project/showfiles.php?group_id=67586&package_id=67942&release_id=637800">GLEW 1.5.1</a> adds support for OpenGL 3.0 and 31 new extensions</li>
|
|
||||||
<li>[12-27-07] <a href="https://sourceforge.net/project/showfiles.php?group_id=67586&package_id=67942&release_id=564464">GLEW 1.5.0</a> is released under less restrictive licenses</li>
|
|
||||||
<li>[04-27-07] <a href="https://sourceforge.net/project/showfiles.php?group_id=67586&package_id=67942&release_id=504079">GLEW 1.4.0</a> is released</li>
|
|
||||||
<li>[03-08-07] GLEW is included in the <a href="http://developer.nvidia.com/object/sdk_home.html">NVIDIA OpenGL SDK</a></li>
|
|
||||||
<li>[03-04-07] <a href="https://sourceforge.net/project/showfiles.php?group_id=67586&package_id=67942&release_id=491113">GLEW 1.3.6</a> is released</li>
|
|
||||||
<li>[02-28-07] <a href="http://glew.svn.sourceforge.net/svnroot/glew/trunk/glew/">Repository</a> is migrated to SVN</li>
|
|
||||||
<li>[02-25-07] GLEW is included in the <a href="http://www.opengl.org/sdk/">OpenGL SDK</a></li>
|
|
||||||
<li>[11-21-06] <a href="https://sourceforge.net/project/showfiles.php?group_id=67586&package_id=67942&release_id=465334">GLEW 1.3.5</a> adds OpenGL 2.1 and NVIDIA G80 extensions</li>
|
|
||||||
<li>[03-04-06] <a href="https://sourceforge.net/project/showfiles.php?group_id=67586&package_id=67942&release_id=398455">GLEW 1.3.4</a> adds support for five new extensions</li>
|
|
||||||
<li>[05-16-05] <a href="https://sourceforge.net/project/showfiles.php?group_id=67586&package_id=67942&release_id=327647">GLEW 1.3.3</a> is released</li>
|
|
||||||
<li>[03-16-05] <a href="https://sourceforge.net/project/showfiles.php?group_id=67586&package_id=67942&release_id=313345">GLEW 1.3.2</a> adds support for GL_APPLE_pixel_buffer</li>
|
|
||||||
<li>[02-11-05] <a href="http://gljava.sourceforge.net/">gljava</a> and <a href="http://sdljava.sourceforge.net/">sdljava</a> provide a Java binding to OpenGL via GLEW</li>
|
|
||||||
<li>[02-02-05] <a href="https://sourceforge.net/project/showfiles.php?group_id=67586&package_id=67942&release_id=302049">GLEW 1.3.1</a> adds support for <a href="http://www.opengl.org/documentation/extensions/EXT_framebuffer_object.txt">GL_EXT_framebuffer_object</a></li>
|
|
||||||
<li>[01-04-05] <a href="https://sourceforge.net/project/showfiles.php?group_id=67586&package_id=67942&release_id=294527">GLEW 1.3.0</a> adds core OpenGL 2.0 support plus many enhancements</li>
|
|
||||||
<li>[12-22-04] <a href="http://glewpy.sf.net/">GLEWpy</a> Python wrapper announced</li>
|
|
||||||
<li>[12-12-04] <a href="https://sourceforge.net/mail/?group_id=67586">Mailing lists</a> created on sourceforge</li>
|
|
||||||
<li>[12-06-04] <a href="http://sourceforge.net/project/showfiles.php?group_id=67586&package_id=67942&release_id=287948">GLEW 1.2.5</a> adds new extensions and support for FreeBSD</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<h2>Links</h2>
|
|
||||||
<ul>
|
|
||||||
<li><a href="http://www.opengl.org/sdk/">OpenGL Software Development Kit</a></li>
|
|
||||||
<li><a href="http://www.opengl.org/registry/">OpenGL Extension Registry</a></li>
|
|
||||||
<li><a href="https://www.opengl.org/wiki/OpenGL_Extension">OpenGL Wiki: Extensions</a></li>
|
|
||||||
<li><a href="http://developer.nvidia.com/nvidia-opengl-specs">NVIDIA OpenGL Extension Specifications</a></li>
|
|
||||||
<li><a href="http://developer.apple.com/library/mac/#documentation/GraphicsImaging/Conceptual/OpenGLExtensionsGuide/Reference/reference.html">Apple OpenGL Extensions Guide</a></li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<!-- begin footer.html -->
|
|
||||||
</td></tr></table></body>
|
|
||||||
<!-- end footer.html -->
|
|
||||||
|
|
||||||
@@ -1,224 +0,0 @@
|
|||||||
<!-- begin header.html -->
|
|
||||||
<!--
|
|
||||||
The OpenGL Extension Wrangler Library
|
|
||||||
Copyright (C) 2008-2015, Nigel Stewart <nigels[]users sourceforge net>
|
|
||||||
Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
|
|
||||||
Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
|
|
||||||
Copyright (C) 2002, Lev Povalahev
|
|
||||||
All rights reserved.
|
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
|
||||||
modification, are permitted provided that the following conditions are met:
|
|
||||||
|
|
||||||
* Redistributions of source code must retain the above copyright notice,
|
|
||||||
this list of conditions and the following disclaimer.
|
|
||||||
* Redistributions in binary form must reproduce the above copyright notice,
|
|
||||||
this list of conditions and the following disclaimer in the documentation
|
|
||||||
and/or other materials provided with the distribution.
|
|
||||||
* The name of the author may be used to endorse or promote products
|
|
||||||
derived from this software without specific prior written permission.
|
|
||||||
|
|
||||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
|
||||||
THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
-->
|
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html/4/loose.dtd">
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<title>GLEW: The OpenGL Extension Wrangler Library</title>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
|
||||||
<link href="glew.css" type="text/css" rel="stylesheet">
|
|
||||||
</head>
|
|
||||||
<body bgcolor="#fff0d0">
|
|
||||||
<table border="0" width="100%" cellpadding="12" cellspacing="8" style="height:100%">
|
|
||||||
<tr>
|
|
||||||
<td bgcolor="#ffffff" align="left" valign="top" width="200">
|
|
||||||
<table border="0" width="100%" cellpadding="0" cellspacing="0" align="left">
|
|
||||||
<tr>
|
|
||||||
<td valign="top">
|
|
||||||
|
|
||||||
<table border="0" width="100%" cellpadding="0" cellspacing="0" align="left">
|
|
||||||
<tr><td align="center"><i>Latest Release: <a href="https://sourceforge.net/projects/glew/files/glew/1.13.0/">1.13.0</a></i></td></tr>
|
|
||||||
<tr><td align="center"><br></td></tr>
|
|
||||||
<tr><td align="center"><img src="./glew.png" alt="GLEW Logo" width="97" height="75"></td></tr>
|
|
||||||
<tr><td align="center"><br></td></tr>
|
|
||||||
<tr><td align="center">
|
|
||||||
<table border="0" cellpadding="0" cellspacing="0" align="center">
|
|
||||||
<tr><td align="center"><a href="index.html">Download</a></td></tr>
|
|
||||||
<tr><td align="center"><a href="basic.html">Usage</a></td></tr>
|
|
||||||
<tr><td align="center"><a href="build.html">Building</a></td></tr>
|
|
||||||
<tr><td align="center">Installation</td></tr>
|
|
||||||
<tr><td align="center"><a href="advanced.html">Source Generation</a></td></tr>
|
|
||||||
<tr><td align="center"><a href="credits.html">Credits & Copyright</a></td></tr>
|
|
||||||
<tr><td align="center"><a href="log.html">Change Log</a></td></tr>
|
|
||||||
<tr></tr>
|
|
||||||
<tr><td align="center"><a href="https://github.com/nigels-com/glew">GitHub</a></td></tr>
|
|
||||||
<tr><td align="center"><a href="https://sourceforge.net/projects/glew">Project Page</a></td></tr>
|
|
||||||
<tr><td align="center"><a href="http://sourceforge.net/p/glew/bugs/">Bug Tracker</a></td></tr>
|
|
||||||
</table>
|
|
||||||
<tr><td align="center"><br></tr>
|
|
||||||
</table>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
|
|
||||||
<td valign="bottom">
|
|
||||||
<table border="0" width="100%" cellpadding="5" cellspacing="0" align="left">
|
|
||||||
<tr><td align="center"><i>Last Update: 08-10-15</i></td></tr>
|
|
||||||
<tr><td align="center">
|
|
||||||
<a href="http://www.opengl.org"><img src="./ogl_sm.jpg" width="68" height="35" border="0" alt="OpenGL Logo"></a><br/>
|
|
||||||
<a href="https://github.com/nigels-com/glew"><img src="github.png" width="70" height="29" border="0" alt="GitHub Logo"></a><br/>
|
|
||||||
<a href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=67586&type=1" width="88" height="31" border="0" alt="SourceForge Logo"></a>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</td>
|
|
||||||
|
|
||||||
<td bgcolor="#ffffff" align="left" valign="top">
|
|
||||||
|
|
||||||
<h1>The OpenGL Extension Wrangler Library</h1>
|
|
||||||
|
|
||||||
<!-- end header.html -->
|
|
||||||
|
|
||||||
|
|
||||||
<h2>Installation</h2>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
To use the shared library version of GLEW, you need to copy the
|
|
||||||
headers and libraries into their destination directories. On Windows
|
|
||||||
this typically boils down to copying:
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<table border="0" cellpadding="0" cellspacing="0" align="center"> <!-- bgcolor="#f0f0f0" -->
|
|
||||||
<tr><td align="left"><tt>bin/glew32.dll</tt></td><td> to </td>
|
|
||||||
<td align="left"><tt>%SystemRoot%/system32</tt></td></tr>
|
|
||||||
<tr><td align="left"><tt>lib/glew32.lib</tt></td><td> to </td>
|
|
||||||
<td align="left"><tt>{VC Root}/Lib</tt></td></tr>
|
|
||||||
<tr><td align="left"><tt>include/GL/glew.h</tt></td><td> to </td>
|
|
||||||
<td align="left"><tt>{VC Root}/Include/GL</tt></td></tr>
|
|
||||||
<tr><td align="left"><tt>include/GL/wglew.h</tt></td><td> to </td>
|
|
||||||
<td align="left"><tt>{VC Root}/Include/GL</tt></td></tr>
|
|
||||||
</table>
|
|
||||||
<p>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
where <tt>{VC Root}</tt> is the Visual C++ root directory, typically
|
|
||||||
<tt>C:/Program Files/Microsoft Visual Studio/VC98</tt> for Visual
|
|
||||||
Studio 6.0 or <tt>C:/Program Files/Microsoft Visual
|
|
||||||
Studio .NET 2003/Vc7/PlatformSDK</tt> for Visual Studio .NET.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
On Unix, typing <tt>make install</tt> will attempt to install GLEW
|
|
||||||
into <tt>/usr/include/GL</tt> and <tt>/usr/lib</tt>. You can
|
|
||||||
customize the installation target via the <tt>GLEW_DEST</tt>
|
|
||||||
environment variable if you do not have write access to these
|
|
||||||
directories.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h2>Building Your Project with GLEW</h2>
|
|
||||||
<p>
|
|
||||||
There are two ways to build your project with GLEW.
|
|
||||||
</p>
|
|
||||||
<h3>Including the source files / project file</h3>
|
|
||||||
<p>
|
|
||||||
The simpler but less flexible way is to include <tt>glew.h</tt> and
|
|
||||||
<tt>glew.c</tt> into your project. On Windows, you also need to
|
|
||||||
define the <tt>GLEW_STATIC</tt> preprocessor token when building a
|
|
||||||
static library or executable, and the <tt>GLEW_BUILD</tt> preprocessor
|
|
||||||
token when building a dll. You also need to replace
|
|
||||||
<tt><GL/gl.h></tt> and <tt><GL/glu.h></tt> with
|
|
||||||
<tt><glew.h></tt> in your code and set the appropriate include
|
|
||||||
flag (<tt>-I</tt>) to tell the compiler where to look for it. For
|
|
||||||
example:
|
|
||||||
</p>
|
|
||||||
<p class="pre">
|
|
||||||
#include <glew.h><br>
|
|
||||||
#include <GL/glut.h><br>
|
|
||||||
<gl, glu, and glut functionality is available here><br>
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
Depending on where you put <tt>glew.h</tt> you may also need to change
|
|
||||||
the include directives in <tt>glew.c</tt>. Note that if you are using
|
|
||||||
GLEW together with GLUT, you have to include <tt>glew.h</tt> first.
|
|
||||||
In addition, <tt>glew.h</tt> includes <tt>glu.h</tt>, so you do not
|
|
||||||
need to include it separately.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
On Windows, you also have the option of adding the supplied project
|
|
||||||
file <tt>glew_static.dsp</tt> to your workspace (solution) and compile
|
|
||||||
it together with your other projects. In this case you also need to
|
|
||||||
change the <tt>GLEW_BUILD</tt> preprocessor constant to
|
|
||||||
<tt>GLEW_STATIC</tt> when building a static library or executable,
|
|
||||||
otherwise you get build errors.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<b>Note that GLEW does not use the C
|
|
||||||
runtime library, so it does not matter which version (single-threaded,
|
|
||||||
multi-threaded or multi-threaded DLL) it is linked with (without
|
|
||||||
debugging information). It is, however, always a good idea to compile all
|
|
||||||
your projects including GLEW with the same C runtime settings.</b>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h3>Using GLEW as a shared library</h3>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Alternatively, you can use the provided project files / makefile to
|
|
||||||
build a separate shared library you can link your projects with later.
|
|
||||||
In this case the best practice is to install <tt>glew.h</tt>,
|
|
||||||
<tt>glew32.lib</tt>, and <tt>glew32.dll</tt> / <tt>libGLEW.so</tt> to
|
|
||||||
where the OpenGL equivalents <tt>gl.h</tt>, <tt>opengl32.lib</tt>, and
|
|
||||||
<tt>opengl32.dll</tt> / <tt>libGL.so</tt> are located. Note that you
|
|
||||||
need administrative privileges to do this. If you do not have
|
|
||||||
administrator access and your system administrator will not do it for
|
|
||||||
you, you can install GLEW into your own lib and include subdirectories
|
|
||||||
and tell the compiler where to find it. Then you can just replace
|
|
||||||
<tt><GL/gl.h></tt> with <tt><GL/glew.h></tt> in your
|
|
||||||
program:
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p class="pre">
|
|
||||||
#include <GL/glew.h><br>
|
|
||||||
#include <GL/glut.h><br>
|
|
||||||
<gl, glu, and glut functionality is available here><br>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
or:
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p class="pre">
|
|
||||||
#include <GL/glew.h><br>
|
|
||||||
<gl and glu functionality is available here><br>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Remember to link your project with <tt>glew32.lib</tt>,
|
|
||||||
<tt>glu32.lib</tt>, and <tt>opengl32.lib</tt> on Windows and
|
|
||||||
<tt>libGLEW.so</tt>, <tt>libGLU.so</tt>, and <tt>libGL.so</tt> on
|
|
||||||
Unix (<tt>-lGLEW -lGLU -lGL</tt>).
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
It is important to keep in mind that <tt>glew.h</tt> includes neither
|
|
||||||
<tt>windows.h</tt> nor <tt>gl.h</tt>. Also, GLEW will warn you by
|
|
||||||
issuing a preprocessor error in case you have included <tt>gl.h</tt>,
|
|
||||||
<tt>glext.h</tt>, or <tt>glATI.h</tt> before <tt>glew.h</tt>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<!-- begin footer.html -->
|
|
||||||
</td></tr></table></body>
|
|
||||||
<!-- end footer.html -->
|
|
||||||
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
Copyright (c) 2007 The Khronos Group Inc.
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
copy of this software and/or associated documentation files (the
|
|
||||||
"Materials"), to deal in the Materials without restriction, including
|
|
||||||
without limitation the rights to use, copy, modify, merge, publish,
|
|
||||||
distribute, sublicense, and/or sell copies of the Materials, and to
|
|
||||||
permit persons to whom the Materials are furnished to do so, subject to
|
|
||||||
the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included
|
|
||||||
in all copies or substantial portions of the Materials.
|
|
||||||
|
|
||||||
THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
||||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
||||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
|
||||||
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
|
||||||
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
|
||||||
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
|
||||||
MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
|
|
||||||
1129
kraken_win/3rdparty/glew/glew-1.13.0/doc/log.html
vendored
1129
kraken_win/3rdparty/glew/glew-1.13.0/doc/log.html
vendored
File diff suppressed because it is too large
Load Diff
@@ -1,21 +0,0 @@
|
|||||||
Mesa 3-D graphics library
|
|
||||||
Version: 7.0
|
|
||||||
|
|
||||||
Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
copy of this software and associated documentation files (the "Software"),
|
|
||||||
to deal in the Software without restriction, including without limitation
|
|
||||||
the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
||||||
and/or sell copies of the Software, and to permit persons to whom the
|
|
||||||
Software is furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included
|
|
||||||
in all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
|
||||||
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
||||||
BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
|
||||||
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
|
||||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
||||||
BIN
kraken_win/3rdparty/glew/glew-1.13.0/doc/new.png
vendored
BIN
kraken_win/3rdparty/glew/glew-1.13.0/doc/new.png
vendored
Binary file not shown.
|
Before Width: | Height: | Size: 1.2 KiB |
BIN
kraken_win/3rdparty/glew/glew-1.13.0/doc/ogl_sm.jpg
vendored
BIN
kraken_win/3rdparty/glew/glew-1.13.0/doc/ogl_sm.jpg
vendored
Binary file not shown.
|
Before Width: | Height: | Size: 1.6 KiB |
164
kraken_win/3rdparty/glew/glew-1.13.0/doc/wglew.html
vendored
164
kraken_win/3rdparty/glew/glew-1.13.0/doc/wglew.html
vendored
@@ -1,164 +0,0 @@
|
|||||||
<!-- begin header.html -->
|
|
||||||
<!--
|
|
||||||
The OpenGL Extension Wrangler Library
|
|
||||||
Copyright (C) 2008-2015, Nigel Stewart <nigels[]users sourceforge net>
|
|
||||||
Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
|
|
||||||
Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
|
|
||||||
Copyright (C) 2002, Lev Povalahev
|
|
||||||
All rights reserved.
|
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
|
||||||
modification, are permitted provided that the following conditions are met:
|
|
||||||
|
|
||||||
* Redistributions of source code must retain the above copyright notice,
|
|
||||||
this list of conditions and the following disclaimer.
|
|
||||||
* Redistributions in binary form must reproduce the above copyright notice,
|
|
||||||
this list of conditions and the following disclaimer in the documentation
|
|
||||||
and/or other materials provided with the distribution.
|
|
||||||
* The name of the author may be used to endorse or promote products
|
|
||||||
derived from this software without specific prior written permission.
|
|
||||||
|
|
||||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
|
||||||
THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
-->
|
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html/4/loose.dtd">
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<title>GLEW: The OpenGL Extension Wrangler Library</title>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
|
||||||
<link href="glew.css" type="text/css" rel="stylesheet">
|
|
||||||
</head>
|
|
||||||
<body bgcolor="#fff0d0">
|
|
||||||
<table border="0" width="100%" cellpadding="12" cellspacing="8" style="height:100%">
|
|
||||||
<tr>
|
|
||||||
<td bgcolor="#ffffff" align="left" valign="top" width="200">
|
|
||||||
<table border="0" width="100%" cellpadding="0" cellspacing="0" align="left">
|
|
||||||
<tr>
|
|
||||||
<td valign="top">
|
|
||||||
|
|
||||||
<table border="0" width="100%" cellpadding="0" cellspacing="0" align="left">
|
|
||||||
<tr><td align="center"><i>Latest Release: <a href="https://sourceforge.net/projects/glew/files/glew/1.13.0/">1.13.0</a></i></td></tr>
|
|
||||||
<tr><td align="center"><br></td></tr>
|
|
||||||
<tr><td align="center"><img src="./glew.png" alt="GLEW Logo" width="97" height="75"></td></tr>
|
|
||||||
<tr><td align="center"><br></td></tr>
|
|
||||||
<tr><td align="center">
|
|
||||||
<table border="0" cellpadding="0" cellspacing="0" align="center">
|
|
||||||
<tr><td align="center"><a href="index.html">Download</a></td></tr>
|
|
||||||
<tr><td align="center"><a href="basic.html">Usage</a></td></tr>
|
|
||||||
<tr><td align="center"><a href="build.html">Building</a></td></tr>
|
|
||||||
<tr><td align="center"><a href="install.html">Installation</a></td></tr>
|
|
||||||
<tr><td align="center"><a href="advanced.html">Source Generation</a></td></tr>
|
|
||||||
<tr><td align="center"><a href="credits.html">Credits & Copyright</a></td></tr>
|
|
||||||
<tr><td align="center"><a href="log.html">Change Log</a></td></tr>
|
|
||||||
<tr></tr>
|
|
||||||
<tr><td align="center"><a href="https://github.com/nigels-com/glew">GitHub</a></td></tr>
|
|
||||||
<tr><td align="center"><a href="https://sourceforge.net/projects/glew">Project Page</a></td></tr>
|
|
||||||
<tr><td align="center"><a href="http://sourceforge.net/p/glew/bugs/">Bug Tracker</a></td></tr>
|
|
||||||
</table>
|
|
||||||
<tr><td align="center"><br></tr>
|
|
||||||
</table>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
|
|
||||||
<td valign="bottom">
|
|
||||||
<table border="0" width="100%" cellpadding="5" cellspacing="0" align="left">
|
|
||||||
<tr><td align="center"><i>Last Update: 08-10-15</i></td></tr>
|
|
||||||
<tr><td align="center">
|
|
||||||
<a href="http://www.opengl.org"><img src="./ogl_sm.jpg" width="68" height="35" border="0" alt="OpenGL Logo"></a><br/>
|
|
||||||
<a href="https://github.com/nigels-com/glew"><img src="github.png" width="70" height="29" border="0" alt="GitHub Logo"></a><br/>
|
|
||||||
<a href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=67586&type=1" width="88" height="31" border="0" alt="SourceForge Logo"></a>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</td>
|
|
||||||
|
|
||||||
<td bgcolor="#ffffff" align="left" valign="top">
|
|
||||||
|
|
||||||
<h1>The OpenGL Extension Wrangler Library</h1>
|
|
||||||
|
|
||||||
<!-- end header.html -->
|
|
||||||
|
|
||||||
|
|
||||||
<h2>Supported WGL Extensions</h2>
|
|
||||||
|
|
||||||
<table border="0" width="100%" cellpadding="1" cellspacing="0" align="center">
|
|
||||||
<tr><td class="num">1</td><td> </td><td><a href="http://www.opengl.org/registry/specs/3DFX/3dfx_multisample.txt">3DFX_multisample</a></td></tr>
|
|
||||||
<tr><td><br></td><td></td><td></td></tr>
|
|
||||||
<tr><td class="num">2</td><td> </td><td><a href="http://www.opengl.org/registry/specs/3DL/stereo_control.txt">3DL_stereo_control</a></td></tr>
|
|
||||||
<tr><td><br></td><td></td><td></td></tr>
|
|
||||||
<tr><td class="num">3</td><td> </td><td><a href="http://www.opengl.org/registry/specs/AMD/wgl_gpu_association.txt">AMD_gpu_association</a></td></tr>
|
|
||||||
<tr><td><br></td><td></td><td></td></tr>
|
|
||||||
<tr><td class="num">4</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/wgl_buffer_region.txt">ARB_buffer_region</a></td></tr>
|
|
||||||
<tr><td class="num">5</td><td> </td><td><a href="http://www.opengl.org/registry/specs/KHR/context_flush_control.txt">ARB_context_flush_control</a></td></tr>
|
|
||||||
<tr><td class="num">6</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/wgl_create_context.txt">ARB_create_context</a></td></tr>
|
|
||||||
<tr><td class="num">7</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/wgl_create_context.txt">ARB_create_context_profile</a></td></tr>
|
|
||||||
<tr><td class="num">8</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/wgl_create_context_robustness.txt">ARB_create_context_robustness</a></td></tr>
|
|
||||||
<tr><td class="num">9</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/wgl_extensions_string.txt">ARB_extensions_string</a></td></tr>
|
|
||||||
<tr><td class="num">10</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/framebuffer_sRGB.txt">ARB_framebuffer_sRGB</a></td></tr>
|
|
||||||
<tr><td class="num">11</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/wgl_make_current_read.txt">ARB_make_current_read</a></td></tr>
|
|
||||||
<tr><td class="num">12</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/multisample.txt">ARB_multisample</a></td></tr>
|
|
||||||
<tr><td class="num">13</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/wgl_pbuffer.txt">ARB_pbuffer</a></td></tr>
|
|
||||||
<tr><td class="num">14</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/wgl_pixel_format.txt">ARB_pixel_format</a></td></tr>
|
|
||||||
<tr><td class="num">15</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/color_buffer_float.txt">ARB_pixel_format_float</a></td></tr>
|
|
||||||
<tr><td class="num">16</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/wgl_render_texture.txt">ARB_render_texture</a></td></tr>
|
|
||||||
<tr><td class="num">17</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/wgl_robustness_isolation.txt">ARB_robustness_application_isolation</a></td></tr>
|
|
||||||
<tr><td class="num">18</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ARB/wgl_robustness_isolation.txt">ARB_robustness_share_group_isolation</a></td></tr>
|
|
||||||
<tr><td><br></td><td></td><td></td></tr>
|
|
||||||
<tr><td class="num">19</td><td> </td><td><a href="http://www.opengl.org/registry/specs/ATI/pixel_format_float.txt">ATI_pixel_format_float</a></td></tr>
|
|
||||||
<tr><td class="num">20</td><td> </td><td>ATI_render_texture_rectangle</td></tr>
|
|
||||||
<tr><td><br></td><td></td><td></td></tr>
|
|
||||||
<tr><td class="num">21</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/wgl_create_context_es2_profile.txt">EXT_create_context_es2_profile</a></td></tr>
|
|
||||||
<tr><td class="num">22</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/wgl_create_context_es_profile.txt">EXT_create_context_es_profile</a></td></tr>
|
|
||||||
<tr><td class="num">23</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/wgl_depth_float.txt">EXT_depth_float</a></td></tr>
|
|
||||||
<tr><td class="num">24</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/wgl_display_color_table.txt">EXT_display_color_table</a></td></tr>
|
|
||||||
<tr><td class="num">25</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/wgl_extensions_string.txt">EXT_extensions_string</a></td></tr>
|
|
||||||
<tr><td class="num">26</td><td> </td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_EXT_framebuffer_sRGB.txt">EXT_framebuffer_sRGB</a></td></tr>
|
|
||||||
<tr><td class="num">27</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/wgl_make_current_read.txt">EXT_make_current_read</a></td></tr>
|
|
||||||
<tr><td class="num">28</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/wgl_multisample.txt">EXT_multisample</a></td></tr>
|
|
||||||
<tr><td class="num">29</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/wgl_pbuffer.txt">EXT_pbuffer</a></td></tr>
|
|
||||||
<tr><td class="num">30</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/wgl_pixel_format.txt">EXT_pixel_format</a></td></tr>
|
|
||||||
<tr><td class="num">31</td><td> </td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_EXT_packed_float.txt">EXT_pixel_format_packed_float</a></td></tr>
|
|
||||||
<tr><td class="num">32</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/wgl_swap_control.txt">EXT_swap_control</a></td></tr>
|
|
||||||
<tr><td class="num">33</td><td> </td><td><a href="http://www.opengl.org/registry/specs/EXT/wgl_swap_control_tear.txt">EXT_swap_control_tear</a></td></tr>
|
|
||||||
<tr><td><br></td><td></td><td></td></tr>
|
|
||||||
<tr><td class="num">34</td><td> </td><td><a href="http://www.opengl.org/registry/specs/I3D/wgl_digital_video_control.txt">I3D_digital_video_control</a></td></tr>
|
|
||||||
<tr><td class="num">35</td><td> </td><td><a href="http://www.opengl.org/registry/specs/I3D/wgl_gamma.txt">I3D_gamma</a></td></tr>
|
|
||||||
<tr><td class="num">36</td><td> </td><td><a href="http://www.opengl.org/registry/specs/I3D/wgl_genlock.txt">I3D_genlock</a></td></tr>
|
|
||||||
<tr><td class="num">37</td><td> </td><td><a href="http://www.opengl.org/registry/specs/I3D/wgl_image_buffer.txt">I3D_image_buffer</a></td></tr>
|
|
||||||
<tr><td class="num">38</td><td> </td><td><a href="http://www.opengl.org/registry/specs/I3D/wgl_swap_frame_lock.txt">I3D_swap_frame_lock</a></td></tr>
|
|
||||||
<tr><td class="num">39</td><td> </td><td><a href="http://www.opengl.org/registry/specs/I3D/wgl_swap_frame_usage.txt">I3D_swap_frame_usage</a></td></tr>
|
|
||||||
<tr><td><br></td><td></td><td></td></tr>
|
|
||||||
<tr><td class="num">40</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/DX_interop.txt">NV_DX_interop</a></td></tr>
|
|
||||||
<tr><td class="num">41</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/DX_interop2.txt">NV_DX_interop2</a></td></tr>
|
|
||||||
<tr><td class="num">42</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/copy_image.txt">NV_copy_image</a></td></tr>
|
|
||||||
<tr><td class="num">43</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/wgl_delay_before_swap.txt">NV_delay_before_swap</a></td></tr>
|
|
||||||
<tr><td class="num">44</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/float_buffer.txt">NV_float_buffer</a></td></tr>
|
|
||||||
<tr><td class="num">45</td><td> </td><td><a href="http://developer.download.nvidia.com/opengl/specs/WGL_nv_gpu_affinity.txt">NV_gpu_affinity</a></td></tr>
|
|
||||||
<tr><td class="num">46</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/multisample_coverage.txt">NV_multisample_coverage</a></td></tr>
|
|
||||||
<tr><td class="num">47</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/present_video.txt">NV_present_video</a></td></tr>
|
|
||||||
<tr><td class="num">48</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/render_depth_texture.txt">NV_render_depth_texture</a></td></tr>
|
|
||||||
<tr><td class="num">49</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/render_texture_rectangle.txt">NV_render_texture_rectangle</a></td></tr>
|
|
||||||
<tr><td class="num">50</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/wgl_swap_group.txt">NV_swap_group</a></td></tr>
|
|
||||||
<tr><td class="num">51</td><td> </td><td><a href="http://oss.sgi.com/projects/ogl-sample/registry/NV/vertex_array_range.txt">NV_vertex_array_range</a></td></tr>
|
|
||||||
<tr><td class="num">52</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/video_capture.txt">NV_video_capture</a></td></tr>
|
|
||||||
<tr><td class="num">53</td><td> </td><td><a href="http://www.opengl.org/registry/specs/NV/wgl_video_output.txt">NV_video_output</a></td></tr>
|
|
||||||
<tr><td><br></td><td></td><td></td></tr>
|
|
||||||
<tr><td class="num">54</td><td> </td><td><a href="http://www.opengl.org/registry/specs/OML/wgl_sync_control.txt">OML_sync_control</a></td></tr>
|
|
||||||
</table>
|
|
||||||
<!-- begin footer.html -->
|
|
||||||
</td></tr></table></body>
|
|
||||||
<!-- end footer.html -->
|
|
||||||
|
|
||||||
19753
kraken_win/3rdparty/glew/glew-1.13.0/include/GL/glew.h
vendored
19753
kraken_win/3rdparty/glew/glew-1.13.0/include/GL/glew.h
vendored
File diff suppressed because it is too large
Load Diff
1772
kraken_win/3rdparty/glew/glew-1.13.0/include/GL/glxew.h
vendored
1772
kraken_win/3rdparty/glew/glew-1.13.0/include/GL/glxew.h
vendored
File diff suppressed because it is too large
Load Diff
1453
kraken_win/3rdparty/glew/glew-1.13.0/include/GL/wglew.h
vendored
1453
kraken_win/3rdparty/glew/glew-1.13.0/include/GL/wglew.h
vendored
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,28 +0,0 @@
|
|||||||
|
|
||||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
|
||||||
# Visual Studio 14
|
|
||||||
VisualStudioVersion = 14.0.25123.0
|
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "kraken", "kraken.vcxproj", "{D5E33AC7-E0AC-47B5-96D9-1BBA8B13DBC5}"
|
|
||||||
EndProject
|
|
||||||
Global
|
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
|
||||||
Debug|x64 = Debug|x64
|
|
||||||
Debug|x86 = Debug|x86
|
|
||||||
Release|x64 = Release|x64
|
|
||||||
Release|x86 = Release|x86
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
|
||||||
{D5E33AC7-E0AC-47B5-96D9-1BBA8B13DBC5}.Debug|x64.ActiveCfg = Debug|x64
|
|
||||||
{D5E33AC7-E0AC-47B5-96D9-1BBA8B13DBC5}.Debug|x64.Build.0 = Debug|x64
|
|
||||||
{D5E33AC7-E0AC-47B5-96D9-1BBA8B13DBC5}.Debug|x86.ActiveCfg = Debug|Win32
|
|
||||||
{D5E33AC7-E0AC-47B5-96D9-1BBA8B13DBC5}.Debug|x86.Build.0 = Debug|Win32
|
|
||||||
{D5E33AC7-E0AC-47B5-96D9-1BBA8B13DBC5}.Release|x64.ActiveCfg = Release|x64
|
|
||||||
{D5E33AC7-E0AC-47B5-96D9-1BBA8B13DBC5}.Release|x64.Build.0 = Release|x64
|
|
||||||
{D5E33AC7-E0AC-47B5-96D9-1BBA8B13DBC5}.Release|x86.ActiveCfg = Release|Win32
|
|
||||||
{D5E33AC7-E0AC-47B5-96D9-1BBA8B13DBC5}.Release|x86.Build.0 = Release|Win32
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
|
||||||
HideSolutionNode = FALSE
|
|
||||||
EndGlobalSection
|
|
||||||
EndGlobal
|
|
||||||
@@ -1,290 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
|
||||||
<ProjectConfiguration Include="Debug|Win32">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>Win32</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|Win32">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>Win32</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Debug|x64">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>x64</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|x64">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>x64</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
</ItemGroup>
|
|
||||||
<PropertyGroup Label="Globals">
|
|
||||||
<ProjectGuid>{D5E33AC7-E0AC-47B5-96D9-1BBA8B13DBC5}</ProjectGuid>
|
|
||||||
<Keyword>Win32Proj</Keyword>
|
|
||||||
<WindowsTargetPlatformVersion>10.0.15063.0</WindowsTargetPlatformVersion>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
|
||||||
<PlatformToolset>v141</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
|
||||||
<PlatformToolset>v141</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
|
||||||
<PlatformToolset>v141</PlatformToolset>
|
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
|
||||||
<PlatformToolset>v141</PlatformToolset>
|
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
|
||||||
<ImportGroup Label="ExtensionSettings">
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="Shared">
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<PropertyGroup Label="UserMacros" />
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
||||||
<LinkIncremental>true</LinkIncremental>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<LinkIncremental>true</LinkIncremental>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
||||||
<TargetExt>.lib</TargetExt>
|
|
||||||
<OutDir>$(SolutionDir)\build\output\$(Platform)\$(Configuration)\</OutDir>
|
|
||||||
<IntDir>build\intermediate\$(Platform)\$(Configuration)\</IntDir>
|
|
||||||
<IncludePath>C:\Program Files\Autodesk\FBX\FBX SDK\2018.1.1\include;$(IncludePath)</IncludePath>
|
|
||||||
<LibraryPath>C:\Program Files\Autodesk\FBX\FBX SDK\2018.1.1\lib\vs2015\x64\release;$(LibraryPath)</LibraryPath>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<TargetExt>.lib</TargetExt>
|
|
||||||
<OutDir>$(SolutionDir)\build\output\$(Platform)\$(Configuration)\</OutDir>
|
|
||||||
<IntDir>build\intermediate\$(Platform)\$(Configuration)\</IntDir>
|
|
||||||
<IncludePath>C:\Program Files\Autodesk\FBX\FBX SDK\2018.1.1\include;$(IncludePath)</IncludePath>
|
|
||||||
<LibraryPath>C:\Program Files\Autodesk\FBX\FBX SDK\2018.1.1\lib\vs2015\x64\release;$(LibraryPath)</LibraryPath>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
||||||
<ClCompile>
|
|
||||||
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
|
||||||
<WarningLevel>Level3</WarningLevel>
|
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
|
||||||
<Optimization>Disabled</Optimization>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<TargetMachine>MachineX86</TargetMachine>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
<SubSystem>Windows</SubSystem>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<ClCompile>
|
|
||||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
|
||||||
<WarningLevel>Level3</WarningLevel>
|
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<TargetMachine>MachineX86</TargetMachine>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
<SubSystem>Windows</SubSystem>
|
|
||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
||||||
<ClCompile>
|
|
||||||
<AdditionalIncludeDirectories>$(ProjectDir)3rdparty\glew\glew-1.13.0\include;F:\boost\boost_1_61_0;c:\Program Files\Autodesk\FBX\FBX SDK\2017.0.1\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
</ClCompile>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<ClCompile>
|
|
||||||
<AdditionalIncludeDirectories>$(ProjectDir)3rdparty\glew\glew-1.13.0\include;F:\boost\boost_1_61_0;c:\Program Files\Autodesk\FBX\FBX SDK\2017.0.1\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
</ClCompile>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClCompile Include="..\3rdparty\forsyth\forsyth.cpp" />
|
|
||||||
<ClCompile Include="..\3rdparty\tinyxml2\tinyxml2.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\aabb.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\KRAmbientZone.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\KRAnimation.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\KRAnimationAttribute.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\KRAnimationCurve.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\KRAnimationCurveManager.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\KRAnimationLayer.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\KRAnimationManager.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\KRAudioBuffer.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\KRAudioManager.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\KRAudioSample.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\KRAudioSource.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\KRBehavior.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\KRBone.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\KRBundle.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\KRBundleManager.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\KRCamera.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\KRCollider.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\KRContext.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\KRContextObject.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\KRDataBlock.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\KRDirectionalLight.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\KRDSP_slow.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\KRDSP_vDSP.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\KRFloat.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\KRHelpers.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\HitInfo.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\KRLight.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\KRLocator.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\KRLODGroup.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\KRLODSet.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\matrix4.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\KRMaterial.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\KRMaterialManager.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\KRMesh.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\KRMeshCube.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\KRMeshManager.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\KRMeshQuad.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\KRMeshSphere.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\KRModel.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\KRNode.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\KROctree.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\KROctreeNode.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\KRParticleSystem.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\KRParticleSystemNewtonian.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\KRPointLight.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\quaternion.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\KRRenderSettings.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\KRResource+blend.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\KRResource+fbx.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\KRResource+obj.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\KRResource.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\KRReverbZone.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\KRScene.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\KRSceneManager.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\KRShader.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\KRShaderManager.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\KRSpotLight.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\KRSprite.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\KRTexture.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\KRTexture2D.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\KRTextureAnimated.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\KRTextureCube.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\KRTextureKTX.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\KRTextureManager.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\KRTexturePVR.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\KRTextureTGA.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\triangle3.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\KRUnknown.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\KRUnknownManager.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\vector2.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\vector3.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\vector4.cpp" />
|
|
||||||
<ClCompile Include="..\kraken\KRViewport.cpp" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClInclude Include="..\3rdparty\forsyth\forsyth.h" />
|
|
||||||
<ClInclude Include="..\3rdparty\tinyxml2\tinyxml2.h" />
|
|
||||||
<ClInclude Include="..\kraken\kraken.h" />
|
|
||||||
<ClInclude Include="..\kraken\KRAmbientZone.h" />
|
|
||||||
<ClInclude Include="..\kraken\KRAnimation.h" />
|
|
||||||
<ClInclude Include="..\kraken\KRAnimationAttribute.h" />
|
|
||||||
<ClInclude Include="..\kraken\KRAnimationCurve.h" />
|
|
||||||
<ClInclude Include="..\kraken\KRAnimationCurveManager.h" />
|
|
||||||
<ClInclude Include="..\kraken\KRAnimationLayer.h" />
|
|
||||||
<ClInclude Include="..\kraken\KRAnimationManager.h" />
|
|
||||||
<ClInclude Include="..\kraken\KRAudioBuffer.h" />
|
|
||||||
<ClInclude Include="..\kraken\KRAudioManager.h" />
|
|
||||||
<ClInclude Include="..\kraken\KRAudioSample.h" />
|
|
||||||
<ClInclude Include="..\kraken\KRAudioSource.h" />
|
|
||||||
<ClInclude Include="..\kraken\KRBehavior.h" />
|
|
||||||
<ClInclude Include="..\kraken\KRBone.h" />
|
|
||||||
<ClInclude Include="..\kraken\KRBundle.h" />
|
|
||||||
<ClInclude Include="..\kraken\KRBundleManager.h" />
|
|
||||||
<ClInclude Include="..\kraken\KRCamera.h" />
|
|
||||||
<ClInclude Include="..\kraken\KRCollider.h" />
|
|
||||||
<ClInclude Include="..\kraken\KRContext.h" />
|
|
||||||
<ClInclude Include="..\kraken\KRContextObject.h" />
|
|
||||||
<ClInclude Include="..\kraken\KRDataBlock.h" />
|
|
||||||
<ClInclude Include="..\kraken\KRDirectionalLight.h" />
|
|
||||||
<ClInclude Include="..\kraken\KRDSP.h" />
|
|
||||||
<ClInclude Include="..\kraken\KREngine-common.h" />
|
|
||||||
<ClInclude Include="..\kraken\KREngine.h" />
|
|
||||||
<ClInclude Include="..\kraken\KRHelpers.h" />
|
|
||||||
<ClInclude Include="..\kraken\HitInfo.h" />
|
|
||||||
<ClInclude Include="..\kraken\KRLight.h" />
|
|
||||||
<ClInclude Include="..\kraken\KRLocator.h" />
|
|
||||||
<ClInclude Include="..\kraken\KRLODGroup.h" />
|
|
||||||
<ClInclude Include="..\kraken\KRLODSet.h" />
|
|
||||||
<ClInclude Include="..\kraken\KRMaterial.h" />
|
|
||||||
<ClInclude Include="..\kraken\KRMaterialManager.h" />
|
|
||||||
<ClInclude Include="..\kraken\KRMesh.h" />
|
|
||||||
<ClInclude Include="..\kraken\KRMeshCube.h" />
|
|
||||||
<ClInclude Include="..\kraken\KRMeshManager.h" />
|
|
||||||
<ClInclude Include="..\kraken\KRMeshQuad.h" />
|
|
||||||
<ClInclude Include="..\kraken\KRMeshSphere.h" />
|
|
||||||
<ClInclude Include="..\kraken\KRModel.h" />
|
|
||||||
<ClInclude Include="..\kraken\KRNode.h" />
|
|
||||||
<ClInclude Include="..\kraken\KROctree.h" />
|
|
||||||
<ClInclude Include="..\kraken\KROctreeNode.h" />
|
|
||||||
<ClInclude Include="..\kraken\KRParticleSystem.h" />
|
|
||||||
<ClInclude Include="..\kraken\KRParticleSystemNewtonian.h" />
|
|
||||||
<ClInclude Include="..\kraken\KRPointLight.h" />
|
|
||||||
<ClInclude Include="..\kraken\KRRenderSettings.h" />
|
|
||||||
<ClInclude Include="..\kraken\KRResource+blend.h" />
|
|
||||||
<ClInclude Include="..\kraken\KRResource.h" />
|
|
||||||
<ClInclude Include="..\kraken\KRReverbZone.h" />
|
|
||||||
<ClInclude Include="..\kraken\KRScene.h" />
|
|
||||||
<ClInclude Include="..\kraken\KRSceneManager.h" />
|
|
||||||
<ClInclude Include="..\kraken\KRShader.h" />
|
|
||||||
<ClInclude Include="..\kraken\KRShaderManager.h" />
|
|
||||||
<ClInclude Include="..\kraken\KRSpotLight.h" />
|
|
||||||
<ClInclude Include="..\kraken\KRSprite.h" />
|
|
||||||
<ClInclude Include="..\kraken\KRStockGeometry.h" />
|
|
||||||
<ClInclude Include="..\kraken\KRStreamer.h" />
|
|
||||||
<ClInclude Include="..\kraken\KRTexture.h" />
|
|
||||||
<ClInclude Include="..\kraken\KRTexture2D.h" />
|
|
||||||
<ClInclude Include="..\kraken\KRTextureAnimated.h" />
|
|
||||||
<ClInclude Include="..\kraken\KRTextureCube.h" />
|
|
||||||
<ClInclude Include="..\kraken\KRTextureKTX.h" />
|
|
||||||
<ClInclude Include="..\kraken\KRTextureManager.h" />
|
|
||||||
<ClInclude Include="..\kraken\KRTexturePVR.h" />
|
|
||||||
<ClInclude Include="..\kraken\KRTextureTGA.h" />
|
|
||||||
<ClInclude Include="..\kraken\KRUnknown.h" />
|
|
||||||
<ClInclude Include="..\kraken\KRUnknownManager.h" />
|
|
||||||
<ClInclude Include="..\kraken\KRViewport.h" />
|
|
||||||
<ClInclude Include="..\kraken\public\aabb.h" />
|
|
||||||
<ClInclude Include="..\kraken\public\kraken.h" />
|
|
||||||
<ClInclude Include="..\kraken\public\scalar.h" />
|
|
||||||
<ClInclude Include="..\kraken\public\matrix4.h" />
|
|
||||||
<ClInclude Include="..\kraken\public\quaternion.h" />
|
|
||||||
<ClInclude Include="..\kraken\public\triangle3.h" />
|
|
||||||
<ClInclude Include="..\kraken\public\vector2.h" />
|
|
||||||
<ClInclude Include="..\kraken\public\vector3.h" />
|
|
||||||
<ClInclude Include="..\kraken\public\vector4.h" />
|
|
||||||
<ClInclude Include="3rdparty\glew\glew-1.13.0\include\GL\glew.h" />
|
|
||||||
<ClInclude Include="3rdparty\glew\glew-1.13.0\include\GL\glxew.h" />
|
|
||||||
<ClInclude Include="3rdparty\glew\glew-1.13.0\include\GL\wglew.h" />
|
|
||||||
</ItemGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
|
||||||
<ImportGroup Label="ExtensionTargets">
|
|
||||||
</ImportGroup>
|
|
||||||
</Project>
|
|
||||||
@@ -1,504 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ItemGroup>
|
|
||||||
<Filter Include="Source Files">
|
|
||||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
|
||||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
|
||||||
</Filter>
|
|
||||||
<Filter Include="Header Files">
|
|
||||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
|
||||||
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
|
||||||
</Filter>
|
|
||||||
<Filter Include="Resource Files">
|
|
||||||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
|
||||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
|
|
||||||
</Filter>
|
|
||||||
<Filter Include="Header Files\3rdparty">
|
|
||||||
<UniqueIdentifier>{1ccb2d2f-3dba-4fa4-a77f-5aef119ca916}</UniqueIdentifier>
|
|
||||||
</Filter>
|
|
||||||
<Filter Include="Header Files\3rdparty\forsyth.h">
|
|
||||||
<UniqueIdentifier>{b1389da0-01b5-4d0b-bb62-bf912979a845}</UniqueIdentifier>
|
|
||||||
</Filter>
|
|
||||||
<Filter Include="Header Files\public">
|
|
||||||
<UniqueIdentifier>{4ebfb66f-4752-486a-bfcf-8b438e8ad64b}</UniqueIdentifier>
|
|
||||||
</Filter>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClCompile Include="..\3rdparty\tinyxml2\tinyxml2.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\3rdparty\forsyth\forsyth.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\KRFloat.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\KRViewport.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\KRDataBlock.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\KRNode.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\KRAmbientZone.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\KRAnimation.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\KRAnimationAttribute.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\KRAnimationCurve.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\KRAnimationCurveManager.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\KRAnimationLayer.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\KRAnimationManager.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\KRAudioBuffer.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\KRAudioManager.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\KRAudioSample.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\KRAudioSource.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\KRBehavior.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\KRBone.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\KRBundle.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\KRBundleManager.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\KRCamera.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\KRCollider.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\KRContext.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\KRContextObject.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\KRDirectionalLight.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\HitInfo.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\KRLight.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\KRLocator.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\KRLODGroup.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\KRLODSet.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\KRMaterial.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\KRMaterialManager.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\KRMesh.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\KRMeshCube.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\KRMeshManager.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\KRMeshQuad.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\KRMeshSphere.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\KRModel.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\KROctree.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\KROctreeNode.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\KRParticleSystem.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\KRParticleSystemNewtonian.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\KRPointLight.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\KRRenderSettings.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\KRResource.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\KRResource+blend.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\KRResource+fbx.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\KRResource+obj.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\KRReverbZone.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\KRScene.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\KRSceneManager.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\KRShader.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\KRShaderManager.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\KRSpotLight.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\KRSprite.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\KRTexture.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\KRTexture2D.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\KRTextureAnimated.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\KRTextureCube.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\KRTextureKTX.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\KRTextureManager.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\KRTexturePVR.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\KRTextureTGA.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\KRUnknown.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\KRUnknownManager.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\KRDSP_slow.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\KRDSP_vDSP.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\KRHelpers.cpp">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\vector2.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\vector3.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\vector4.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\matrix4.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\quaternion.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\triangle3.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\kraken\aabb.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClInclude Include="..\3rdparty\tinyxml2\tinyxml2.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\KREngine-common.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\KRViewport.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\KRDataBlock.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\KRNode.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\kraken.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\KRAmbientZone.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\KRAnimation.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\KRAnimationAttribute.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\KRAnimationCurve.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\KRAnimationCurveManager.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\KRAnimationLayer.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\KRAnimationManager.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\KRAudioBuffer.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\KRAudioManager.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\KRAudioSample.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\KRAudioSource.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\KRBehavior.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\KRBone.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\KRBundle.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\KRBundleManager.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\KRCamera.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\KRCollider.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\KRContext.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\KRContextObject.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\KRDirectionalLight.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\KREngine.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\HitInfo.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\KRLight.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\KRLocator.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\KRLODGroup.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\KRLODSet.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\KRMaterial.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\KRMaterialManager.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\KRMesh.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\KRMeshCube.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\KRMeshManager.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\KRMeshQuad.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\KRMeshSphere.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\KRModel.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\KROctree.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\KROctreeNode.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\KRParticleSystem.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\KRParticleSystemNewtonian.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\KRPointLight.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\KRRenderSettings.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\KRResource.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\KRResource+blend.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\KRReverbZone.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\KRScene.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\KRSceneManager.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\KRShader.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\KRShaderManager.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\KRSpotLight.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\KRSprite.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\KRStockGeometry.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\KRStreamer.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\KRTexture.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\KRTexture2D.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\KRTextureAnimated.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\KRTextureCube.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\KRTextureKTX.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\KRTextureManager.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\KRTexturePVR.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\KRTextureTGA.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\KRUnknown.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\KRUnknownManager.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="3rdparty\glew\glew-1.13.0\include\GL\glew.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="3rdparty\glew\glew-1.13.0\include\GL\glxew.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="3rdparty\glew\glew-1.13.0\include\GL\wglew.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\3rdparty\forsyth\forsyth.h">
|
|
||||||
<Filter>Header Files\3rdparty\forsyth.h</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\KRDSP.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\KRHelpers.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\public\kraken.h">
|
|
||||||
<Filter>Header Files\public</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\public\vector2.h">
|
|
||||||
<Filter>Header Files\public</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\public\vector3.h">
|
|
||||||
<Filter>Header Files\public</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\public\vector4.h">
|
|
||||||
<Filter>Header Files\public</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\public\scalar.h">
|
|
||||||
<Filter>Header Files\public</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\public\matrix4.h">
|
|
||||||
<Filter>Header Files\public</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\public\quaternion.h">
|
|
||||||
<Filter>Header Files\public</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\public\triangle3.h">
|
|
||||||
<Filter>Header Files\public</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\kraken\public\aabb.h">
|
|
||||||
<Filter>Header Files\public</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
</ItemGroup>
|
|
||||||
</Project>
|
|
||||||
@@ -1,3 +1,4 @@
|
|||||||
add_subdirectory(hrtf_kemar)
|
add_subdirectory(hrtf_kemar)
|
||||||
|
add_subdirectory(shaders)
|
||||||
add_standard_asset(font.tga)
|
add_standard_asset(font.tga)
|
||||||
set(KRAKEN_STANDARD_ASSETS "${KRAKEN_STANDARD_ASSETS}" PARENT_SCOPE)
|
set(KRAKEN_STANDARD_ASSETS "${KRAKEN_STANDARD_ASSETS}" PARENT_SCOPE)
|
||||||
|
|||||||
3
standard_assets/shaders/CMakeLists.txt
Normal file
3
standard_assets/shaders/CMakeLists.txt
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
set(KRAKEN_STANDARD_ASSETS "${KRAKEN_STANDARD_ASSETS}" PARENT_SCOPE)
|
||||||
|
add_standard_asset(simple_blit.frag)
|
||||||
|
add_standard_asset(simple_blit.vert)
|
||||||
425
standard_assets/shaders/ObjectShader_osx.fsh
Normal file
425
standard_assets/shaders/ObjectShader_osx.fsh
Normal file
@@ -0,0 +1,425 @@
|
|||||||
|
// Copyright 2012 Kearwood Gilbert. All rights reserved.
|
||||||
|
//
|
||||||
|
// Redistribution and use in source and binary forms, with or without modification, are
|
||||||
|
// permitted provided that the following conditions are met:
|
||||||
|
//
|
||||||
|
// 1. Redistributions of source code must retain the above copyright notice, this list of
|
||||||
|
// conditions and the following disclaimer.
|
||||||
|
//
|
||||||
|
// 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
||||||
|
// of conditions and the following disclaimer in the documentation and/or other materials
|
||||||
|
// provided with the distribution.
|
||||||
|
//
|
||||||
|
// THIS SOFTWARE IS PROVIDED BY KEARWOOD GILBERT ''AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||||
|
// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL KEARWOOD GILBERT OR
|
||||||
|
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||||
|
// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||||
|
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||||
|
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
|
// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
//
|
||||||
|
// The views and conclusions contained in the software and documentation are those of the
|
||||||
|
// authors and should not be interpreted as representing official policies, either expressed
|
||||||
|
// or implied, of Kearwood Gilbert.
|
||||||
|
//
|
||||||
|
|
||||||
|
//#extension GL_EXT_shadow_samplers : require
|
||||||
|
|
||||||
|
out vec4 colorOut;
|
||||||
|
|
||||||
|
#if ENABLE_RIM_COLOR == 1
|
||||||
|
uniform lowp vec3 rim_color;
|
||||||
|
uniform mediump float rim_power;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if FOG_TYPE > 0
|
||||||
|
// FOG_TYPE 1 - Linear
|
||||||
|
// FOG_TYPE 2 - Exponential
|
||||||
|
// FOG_TYPE 3 - Exponential squared
|
||||||
|
uniform lowp vec3 fog_color;
|
||||||
|
uniform mediump float fog_near;
|
||||||
|
#if FOG_TYPE == 1
|
||||||
|
uniform mediump float fog_far;
|
||||||
|
uniform mediump float fog_scale;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if FOG_TYPE > 1
|
||||||
|
uniform mediump float fog_density;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if FOG_TYPE == 2
|
||||||
|
uniform mediump float fog_density_premultiplied_exponential;
|
||||||
|
#endif
|
||||||
|
#if FOG_TYPE == 3
|
||||||
|
uniform mediump float fog_density_premultiplied_squared;
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#if ENABLE_PER_PIXEL == 1 || GBUFFER_PASS == 1
|
||||||
|
uniform mediump float material_shininess;
|
||||||
|
#if HAS_NORMAL_MAP == 1
|
||||||
|
uniform sampler2D normalTexture;
|
||||||
|
#else
|
||||||
|
in mediump vec3 normal;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if HAS_DIFFUSE_MAP == 1 || HAS_NORMAL_MAP == 1 || HAS_SPEC_MAP == 1 || HAS_REFLECTION_MAP == 1
|
||||||
|
in highp vec2 texCoord;
|
||||||
|
#endif
|
||||||
|
#if HAS_NORMAL_MAP_OFFSET == 1 || HAS_NORMAL_MAP_SCALE == 1
|
||||||
|
in highp vec2 normal_uv;
|
||||||
|
#else
|
||||||
|
#define normal_uv texCoord
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
#if HAS_DIFFUSE_MAP == 1
|
||||||
|
in highp vec2 texCoord;
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#if GBUFFER_PASS == 3
|
||||||
|
uniform sampler2D gbuffer_frame;
|
||||||
|
uniform sampler2D gbuffer_depth;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if GBUFFER_PASS == 1
|
||||||
|
#if HAS_NORMAL_MAP == 1
|
||||||
|
in highp mat3 tangent_to_view_matrix;
|
||||||
|
#else
|
||||||
|
uniform highp mat4 model_view_inverse_transpose_matrix;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if HAS_DIFFUSE_MAP == 1 && ALPHA_TEST == 1
|
||||||
|
uniform sampler2D diffuseTexture;
|
||||||
|
#if HAS_DIFFUSE_MAP_OFFSET == 1 || HAS_DIFFUSE_MAP_SCALE == 1
|
||||||
|
in highp vec2 diffuse_uv;
|
||||||
|
#else
|
||||||
|
#define diffuse_uv texCoord
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
uniform lowp vec3 material_ambient, material_diffuse, material_specular;
|
||||||
|
uniform lowp float material_alpha;
|
||||||
|
|
||||||
|
|
||||||
|
#if HAS_DIFFUSE_MAP == 1
|
||||||
|
uniform sampler2D diffuseTexture;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if HAS_SPEC_MAP == 1
|
||||||
|
uniform sampler2D specularTexture;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if HAS_REFLECTION_MAP == 1
|
||||||
|
uniform sampler2D reflectionTexture;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if ENABLE_RIM_COLOR == 1
|
||||||
|
#define NEED_EYEVEC
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if HAS_REFLECTION_CUBE_MAP == 1
|
||||||
|
uniform lowp vec3 material_reflection;
|
||||||
|
uniform samplerCube reflectionCubeTexture;
|
||||||
|
#if HAS_NORMAL_MAP == 1
|
||||||
|
in highp mat3 tangent_to_world_matrix;
|
||||||
|
#define NEED_EYEVEC
|
||||||
|
|
||||||
|
uniform highp mat4 model_matrix;
|
||||||
|
#else
|
||||||
|
in mediump vec3 reflectionVec;
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef NEED_EYEVEC
|
||||||
|
in mediump vec3 eyeVec;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#if SHADOW_QUALITY >= 1
|
||||||
|
#ifdef GL_EXT_shadow_samplers
|
||||||
|
uniform sampler2DShadow shadowTexture1;
|
||||||
|
#else
|
||||||
|
uniform sampler2D shadowTexture1;
|
||||||
|
#endif
|
||||||
|
in highp vec4 shadowMapCoord1;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if HAS_LIGHT_MAP == 1
|
||||||
|
uniform sampler2D lightmapTexture;
|
||||||
|
in mediump vec2 lightmap_uv;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if SHADOW_QUALITY >= 2
|
||||||
|
uniform sampler2D shadowTexture2;
|
||||||
|
in highp vec4 shadowMapCoord2;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if SHADOW_QUALITY >= 3
|
||||||
|
uniform sampler2D shadowTexture3;
|
||||||
|
in highp vec4 shadowMapCoord3;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if ENABLE_PER_PIXEL == 1
|
||||||
|
in mediump vec3 lightVec;
|
||||||
|
in mediump vec3 halfVec;
|
||||||
|
#else
|
||||||
|
in mediump float lamberFactor;
|
||||||
|
in mediump float specularFactor;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (HAS_SPEC_MAP_OFFSET == 1|| HAS_SPEC_MAP_SCALE == 1) && ENABLE_PER_PIXEL == 1
|
||||||
|
in mediump vec2 spec_uv;
|
||||||
|
#else
|
||||||
|
#define spec_uv texCoord
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (HAS_REFLECTION_MAP_OFFSET == 1|| HAS_REFLECTION_MAP_SCALE == 1) && ENABLE_PER_PIXEL == 1
|
||||||
|
in mediump vec2 reflection_uv;
|
||||||
|
#else
|
||||||
|
#define reflection_uv texCoord
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if HAS_DIFFUSE_MAP_OFFSET == 1 || HAS_DIFFUSE_MAP_SCALE == 1
|
||||||
|
in highp vec2 diffuse_uv;
|
||||||
|
#else
|
||||||
|
#define diffuse_uv texCoord
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if GBUFFER_PASS == 1 || GBUFFER_PASS == 3
|
||||||
|
uniform mediump vec4 viewport;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
#if ALPHA_TEST == 1 && HAS_DIFFUSE_MAP == 1
|
||||||
|
mediump vec4 diffuseMaterial = texture(diffuseTexture, diffuse_uv);
|
||||||
|
if(diffuseMaterial.a < 0.5) discard;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if GBUFFER_PASS == 1 && ALPHA_TEST == 1
|
||||||
|
if(texture(diffuseTexture, diffuse_uv).a < 0.5) discard;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if GBUFFER_PASS == 2 || GBUFFER_PASS == 3
|
||||||
|
mediump vec2 gbuffer_uv = vec2(gl_FragCoord.xy / viewport.zw); // FINDME, TODO - Dependent Texture Read adding latency, due to calculation of texture UV within fragment -- move to vertex shader?
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if GBUFFER_PASS == 3
|
||||||
|
lowp vec4 gbuffer_sample = texture(gbuffer_frame, gbuffer_uv);
|
||||||
|
mediump vec3 gbuffer_lamber_factor = gbuffer_sample.rgb * 5.0;
|
||||||
|
lowp float gbuffer_specular_factor = gbuffer_sample.a;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if GBUFFER_PASS == 1
|
||||||
|
#if HAS_NORMAL_MAP == 1
|
||||||
|
// lookup normal from normal map, move from [0,1] to [-1, 1] range, normalize
|
||||||
|
mediump vec3 normal = normalize(2.0 * texture(normalTexture,normal_uv).rgb - 1.0);
|
||||||
|
mediump vec3 view_space_normal = tangent_to_view_matrix * normal;
|
||||||
|
#else
|
||||||
|
mediump vec3 view_space_normal = vec3(model_view_inverse_transpose_matrix * vec4(normal, 1.0));
|
||||||
|
#endif
|
||||||
|
colorOut = vec4(view_space_normal * 0.5 + 0.5, material_shininess / 100.0);
|
||||||
|
#else
|
||||||
|
#if HAS_DIFFUSE_MAP == 1
|
||||||
|
#if ALPHA_TEST == 1
|
||||||
|
diffuseMaterial.a = 1.0;
|
||||||
|
#else
|
||||||
|
mediump vec4 diffuseMaterial = texture(diffuseTexture, diffuse_uv);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#else
|
||||||
|
mediump vec4 diffuseMaterial = vec4(1.0);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if ENABLE_PER_PIXEL == 1
|
||||||
|
#if HAS_NORMAL_MAP == 1
|
||||||
|
// lookup normal from normal map, move from [0,1] to [-1, 1] range, normalize
|
||||||
|
mediump vec3 normal = normalize(2.0 * texture(normalTexture,normal_uv).rgb - 1.0);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if GBUFFER_PASS == 3
|
||||||
|
mediump vec3 lamberFactor = gbuffer_lamber_factor;
|
||||||
|
#else
|
||||||
|
mediump float lamberFactor = max(0.0,dot(lightVec, normal));
|
||||||
|
#endif
|
||||||
|
mediump float specularFactor = 0.0;
|
||||||
|
if(material_shininess > 0.0) {
|
||||||
|
#if GBUFFER_PASS == 3
|
||||||
|
specularFactor = gbuffer_specular_factor;
|
||||||
|
#else
|
||||||
|
mediump float halfVecDot = dot(halfVec,normal);
|
||||||
|
if(halfVecDot > 0.0) {
|
||||||
|
specularFactor = max(0.0,pow(halfVecDot, material_shininess));
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef GL_EXT_shadow_samplers
|
||||||
|
#if SHADOW_QUALITY == 1
|
||||||
|
lowp float shadow = shadow2DProjEXT(shadowTexture1, shadowMapCoord1);
|
||||||
|
lamberFactor *= shadow;
|
||||||
|
specularFactor *= shadow;
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
|
||||||
|
#if SHADOW_QUALITY == 1
|
||||||
|
|
||||||
|
highp float shadowMapDepth = 1.0;
|
||||||
|
highp float vertexShadowDepth = 1.0;
|
||||||
|
highp vec2 shadowMapPos = (shadowMapCoord1 / shadowMapCoord1.w).st;
|
||||||
|
|
||||||
|
if(shadowMapCoord1.x >= -1.0 && shadowMapCoord1.x <= 1.0 && shadowMapCoord1.y >= -1.0 && shadowMapCoord1.y <= 1.0 && shadowMapCoord1.z >= 0.0 && shadowMapCoord1.z <= 1.0) {
|
||||||
|
#if DEBUG_PSSM == 1
|
||||||
|
diffuseMaterial = diffuseMaterial * vec4(0.75, 0.75, 0.5, 1.0) + vec4(0.0, 0.0, 0.5, 0.0);
|
||||||
|
#endif
|
||||||
|
shadowMapDepth = texture(shadowTexture1, shadowMapPos).z;
|
||||||
|
vertexShadowDepth = (shadowMapCoord1 / shadowMapCoord1.w).z;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if SHADOW_QUALITY >= 2
|
||||||
|
|
||||||
|
highp float shadowMapDepth = 1.0;
|
||||||
|
highp float vertexShadowDepth = 1.0;
|
||||||
|
|
||||||
|
if(shadowMapCoord1.x >= -1.0 && shadowMapCoord1.x <= 1.0 && shadowMapCoord1.y >= -1.0 && shadowMapCoord1.y <= 1.0 && shadowMapCoord1.z >= 0.0 && shadowMapCoord1.z <= 1.0) {
|
||||||
|
#if DEBUG_PSSM == 1
|
||||||
|
diffuseMaterial = diffuseMaterial * vec4(0.75, 0.75, 0.5, 1.0) + vec4(0.0, 0.0, 0.5 * diffuseMaterial.a, 0.0);
|
||||||
|
#endif
|
||||||
|
highp vec2 shadowMapPos = (shadowMapCoord1 / shadowMapCoord1.w).st;
|
||||||
|
shadowMapDepth = texture(shadowTexture1, shadowMapPos).z;
|
||||||
|
vertexShadowDepth = (shadowMapCoord1 / shadowMapCoord1.w).z;
|
||||||
|
} else if(shadowMapCoord2.s >= -1.0 && shadowMapCoord2.s <= 1.0 && shadowMapCoord2.t >= -1.0 && shadowMapCoord2.t <= 1.0 && shadowMapCoord2.z >= 0.0 && shadowMapCoord2.z <= 1.0) {
|
||||||
|
#if DEBUG_PSSM == 1
|
||||||
|
diffuseMaterial = diffuseMaterial * vec4(0.75, 0.50, 0.75, 1.0) + vec4(0.0, 0.5 * diffuseMaterial.a, 0.0, 0.0);
|
||||||
|
#endif
|
||||||
|
highp vec2 shadowMapPos = (shadowMapCoord2 / shadowMapCoord2.w).st;
|
||||||
|
shadowMapDepth = texture(shadowTexture2, shadowMapPos).z;
|
||||||
|
vertexShadowDepth = (shadowMapCoord2 / shadowMapCoord2.w).z;
|
||||||
|
}
|
||||||
|
#if SHADOW_QUALITY >= 3
|
||||||
|
else if(shadowMapCoord3.s >= -1.0 && shadowMapCoord3.s <= 1.0 && shadowMapCoord3.t >= -1.0 && shadowMapCoord3.t <= 1.0 && shadowMapCoord3.z >= 0.0 && shadowMapCoord3.z <= 1.0) {
|
||||||
|
#if DEBUG_PSSM == 1
|
||||||
|
diffuseMaterial = diffuseMaterial * vec4(0.50, 0.75, 0.75, 1.0) + vec4(0.5 * diffuseMaterial.a, 0.0, 0.0, 0.0);
|
||||||
|
#endif
|
||||||
|
highp vec2 shadowMapPos = (shadowMapCoord3 / shadowMapCoord3.w).st;
|
||||||
|
shadowMapDepth = texture(shadowTexture3, shadowMapPos).z;
|
||||||
|
vertexShadowDepth = (shadowMapCoord3 / shadowMapCoord3.w).z;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if SHADOW_QUALITY >= 1
|
||||||
|
if(vertexShadowDepth >= shadowMapDepth && shadowMapDepth < 1.0) {
|
||||||
|
#if GBUFFER_PASS == 3
|
||||||
|
lamberFactor = vec3(0.0);
|
||||||
|
#else
|
||||||
|
lamberFactor = 0.0;
|
||||||
|
#endif
|
||||||
|
specularFactor = 0.0;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if ENABLE_AMBIENT == 1
|
||||||
|
// -------------------- Add ambient light and alpha component --------------------
|
||||||
|
colorOut = vec4(vec3(diffuseMaterial) * material_ambient, 0.0);
|
||||||
|
#else
|
||||||
|
colorOut = vec4(0.0, 0.0, 0.0, 0.0);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if ENABLE_DIFFUSE == 1
|
||||||
|
// -------------------- Add diffuse light --------------------
|
||||||
|
colorOut += diffuseMaterial * vec4(material_diffuse * lamberFactor, 1.0);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// -------------------- Apply material_alpha --------------------
|
||||||
|
|
||||||
|
#if ALPHA_BLEND == 1
|
||||||
|
colorOut.a = diffuseMaterial.a;
|
||||||
|
colorOut *= material_alpha;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// -------------------- Add specular light --------------------
|
||||||
|
// Additive, not masked against diffuse alpha
|
||||||
|
#if ENABLE_SPECULAR == 1
|
||||||
|
#if HAS_SPEC_MAP == 1 && ENABLE_PER_PIXEL == 1
|
||||||
|
colorOut.rgb += material_specular * vec3(texture(specularTexture, spec_uv)) * specularFactor;
|
||||||
|
#else
|
||||||
|
colorOut.rgb += material_specular * specularFactor;
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// -------------------- Multiply light map --------------------
|
||||||
|
#if HAS_LIGHT_MAP == 1
|
||||||
|
mediump vec3 lightMapColor = vec3(texture(lightmapTexture, lightmap_uv));
|
||||||
|
//colorOut = vec4(colorOut.r * lightMapColor.r, colorOut.g * lightMapColor.g, colorOut.b * lightMapColor.b, colorOut.a);
|
||||||
|
colorOut.rgb *= lightMapColor;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
// -------------------- Add reflected light --------------------
|
||||||
|
#if HAS_REFLECTION_CUBE_MAP == 1
|
||||||
|
// Reflected light is additive and not modulated by the light map
|
||||||
|
#if HAS_NORMAL_MAP == 1
|
||||||
|
// Calculate reflection vector as I - 2.0 * dot(N, I) * N
|
||||||
|
mediump vec3 incidenceVec = -normalize(eyeVec);
|
||||||
|
highp vec3 world_space_normal = tangent_to_world_matrix * normal;
|
||||||
|
mediump vec3 reflectionVec = mat3(model_matrix) * (incidenceVec - 2.0 * dot(world_space_normal, incidenceVec) * world_space_normal);
|
||||||
|
#endif
|
||||||
|
#if HAS_REFLECTION_MAP == 1
|
||||||
|
colorOut += vec4(material_reflection, 0.0) * texture(reflectionTexture, reflection_uv) * vec4(texture(reflectionCubeTexture, reflectionVec).rgb, 1.0);
|
||||||
|
#else
|
||||||
|
colorOut += vec4(material_reflection, 0.0) * vec4(texture(reflectionCubeTexture, reflectionVec).rgb, 1.0);
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// -------------------- Apply Fog --------------------
|
||||||
|
#if FOG_TYPE == 1 || FOG_TYPE == 2 || FOG_TYPE == 3
|
||||||
|
|
||||||
|
#if FOG_TYPE == 1
|
||||||
|
// Linear fog
|
||||||
|
lowp float fog_alpha = clamp((fog_far - gl_FragCoord.z / gl_FragCoord.w) * fog_scale, 0.0, 1.0);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if FOG_TYPE == 2
|
||||||
|
// Exponential fog
|
||||||
|
mediump float fog_z = gl_FragCoord.z / gl_FragCoord.w - fog_near;
|
||||||
|
lowp float fog_alpha = clamp(exp2(fog_density_premultiplied_exponential * fog_z), 0.0, 1.0);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if FOG_TYPE == 3
|
||||||
|
// Exponential squared fog
|
||||||
|
mediump float fog_z = max(gl_FragCoord.z / gl_FragCoord.w - fog_near, 0.0);
|
||||||
|
lowp float fog_alpha = clamp(exp2(fog_density_premultiplied_squared * fog_z * fog_z), 0.0, 1.0);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if ALPHA_BLEND == 1
|
||||||
|
colorOut.rgb = mix(fog_color.rgb * colorOut.a, colorOut.rgb, fog_alpha);
|
||||||
|
#else
|
||||||
|
colorOut.rgb = mix(fog_color.rgb, colorOut.rgb, fog_alpha);
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if ENABLE_RIM_COLOR == 1
|
||||||
|
lowp float rim = 1.0 - clamp(dot(normalize(eyeVec), normal), 0.0, 1.0);
|
||||||
|
|
||||||
|
colorOut += vec4(rim_color, 1.0) * pow(rim, rim_power);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if BONE_COUNT > 0
|
||||||
|
colorOut.b = 1.0;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
344
standard_assets/shaders/ObjectShader_osx.vsh
Normal file
344
standard_assets/shaders/ObjectShader_osx.vsh
Normal file
@@ -0,0 +1,344 @@
|
|||||||
|
//
|
||||||
|
// Shader.vsh
|
||||||
|
// KREngine
|
||||||
|
//
|
||||||
|
// Copyright 2012 Kearwood Gilbert. All rights reserved.
|
||||||
|
//
|
||||||
|
// Redistribution and use in source and binary forms, with or without modification, are
|
||||||
|
// permitted provided that the following conditions are met:
|
||||||
|
//
|
||||||
|
// 1. Redistributions of source code must retain the above copyright notice, this list of
|
||||||
|
// conditions and the following disclaimer.
|
||||||
|
//
|
||||||
|
// 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
||||||
|
// of conditions and the following disclaimer in the documentation and/or other materials
|
||||||
|
// provided with the distribution.
|
||||||
|
//
|
||||||
|
// THIS SOFTWARE IS PROVIDED BY KEARWOOD GILBERT ''AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||||
|
// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL KEARWOOD GILBERT OR
|
||||||
|
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||||
|
// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||||
|
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||||
|
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
|
// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
//
|
||||||
|
// The views and conclusions contained in the software and documentation are those of the
|
||||||
|
// authors and should not be interpreted as representing official policies, either expressed
|
||||||
|
// or implied, of Kearwood Gilbert.
|
||||||
|
//
|
||||||
|
|
||||||
|
|
||||||
|
in highp vec3 vertex_position, vertex_normal;
|
||||||
|
#if HAS_NORMAL_MAP == 1
|
||||||
|
in highp vec3 vertex_tangent;
|
||||||
|
#endif
|
||||||
|
in mediump vec2 vertex_uv;
|
||||||
|
uniform highp mat4 mvp_matrix; // mvp_matrix is the result of multiplying the model, view, and projection matrices
|
||||||
|
|
||||||
|
#if BONE_COUNT > 0
|
||||||
|
in highp vec4 bone_weights;
|
||||||
|
in highp vec4 bone_indexes;
|
||||||
|
uniform highp mat4 bone_transforms[BONE_COUNT];
|
||||||
|
#else
|
||||||
|
#define vertex_position_skinned vertex_position
|
||||||
|
#define vertex_normal_skinned vertex_normal
|
||||||
|
#define vertex_tangent_skinned vertex_tangent
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#if ENABLE_PER_PIXEL == 1 || GBUFFER_PASS == 1
|
||||||
|
#if HAS_DIFFUSE_MAP == 1 || HAS_NORMAL_MAP == 1 || HAS_SPEC_MAP == 1 || HAS_REFLECTION_MAP == 1
|
||||||
|
out highp vec2 texCoord;
|
||||||
|
#endif
|
||||||
|
#if HAS_NORMAL_MAP == 1
|
||||||
|
#if HAS_NORMAL_MAP_SCALE == 1
|
||||||
|
uniform highp vec2 normalTexture_Scale;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if HAS_NORMAL_MAP_OFFSET == 1
|
||||||
|
uniform highp vec2 normalTexture_Offset;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if HAS_NORMAL_MAP_OFFSET == 1 || HAS_NORMAL_MAP_SCALE == 1
|
||||||
|
out highp vec2 normal_uv;
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
out mediump vec3 normal;
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
uniform mediump float material_shininess;
|
||||||
|
#if HAS_DIFFUSE_MAP == 1
|
||||||
|
out highp vec2 texCoord;
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if GBUFFER_PASS == 1
|
||||||
|
#if HAS_NORMAL_MAP == 1
|
||||||
|
uniform highp mat4 model_view_inverse_transpose_matrix;
|
||||||
|
out highp mat3 tangent_to_view_matrix;
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
|
||||||
|
uniform highp vec3 light_direction_model_space; // Must be normalized before entering shader
|
||||||
|
uniform highp vec3 camera_position_model_space;
|
||||||
|
|
||||||
|
#if HAS_LIGHT_MAP == 1
|
||||||
|
in mediump vec2 vertex_lightmap_uv;
|
||||||
|
out mediump vec2 lightmap_uv;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if ENABLE_PER_PIXEL == 1
|
||||||
|
out mediump vec3 lightVec;
|
||||||
|
out mediump vec3 halfVec;
|
||||||
|
|
||||||
|
#if HAS_SPEC_MAP_OFFSET == 1 || HAS_SPEC_MAP_SCALE == 1
|
||||||
|
out highp vec2 spec_uv;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if HAS_SPEC_MAP_SCALE == 1
|
||||||
|
uniform highp vec2 specularTexture_Scale;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if HAS_SPEC_MAP_OFFSET == 1
|
||||||
|
uniform highp vec2 specularTexture_Offset;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if HAS_REFLECTION_MAP_OFFSET == 1 || HAS_REFLECTION_MAP_SCALE == 1
|
||||||
|
out highp vec2 reflection_uv;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if HAS_REFLECTION_MAP_SCALE == 1
|
||||||
|
uniform highp vec2 reflectionTexture_Scale;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if HAS_REFLECTION_MAP_OFFSET == 1
|
||||||
|
uniform highp vec2 reflectionTexture_Offset;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if SHADOW_QUALITY >= 1
|
||||||
|
uniform highp mat4 shadow_mvp1;
|
||||||
|
out highp vec4 shadowMapCoord1;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if SHADOW_QUALITY >= 2
|
||||||
|
uniform highp mat4 shadow_mvp2;
|
||||||
|
out highp vec4 shadowMapCoord2;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if SHADOW_QUALITY >= 3
|
||||||
|
uniform highp mat4 shadow_mvp3;
|
||||||
|
out highp vec4 shadowMapCoord3;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#else
|
||||||
|
out mediump float lamberFactor;
|
||||||
|
out mediump float specularFactor;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if ENABLE_RIM_COLOR == 1
|
||||||
|
#define NEED_EYEVEC
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if HAS_REFLECTION_CUBE_MAP == 1
|
||||||
|
#if HAS_NORMAL_MAP == 1
|
||||||
|
#define NEED_EYEVEC
|
||||||
|
uniform highp mat4 model_inverse_transpose_matrix;
|
||||||
|
out highp mat3 tangent_to_world_matrix;
|
||||||
|
#else
|
||||||
|
uniform highp mat4 model_matrix;
|
||||||
|
out mediump vec3 reflectionVec;
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef NEED_EYEVEC
|
||||||
|
out mediump vec3 eyeVec;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if HAS_DIFFUSE_MAP_SCALE == 1
|
||||||
|
uniform highp vec2 diffuseTexture_Scale;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if HAS_DIFFUSE_MAP_OFFSET == 1
|
||||||
|
uniform highp vec2 diffuseTexture_Offset;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if HAS_DIFFUSE_MAP_OFFSET == 1 || HAS_DIFFUSE_MAP_SCALE == 1
|
||||||
|
out highp vec2 diffuse_uv;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
#if BONE_COUNT > 0
|
||||||
|
mediump vec4 scaled_bone_indexes = bone_indexes;
|
||||||
|
mediump vec4 scaled_bone_weights = bone_weights;
|
||||||
|
|
||||||
|
//scaled_bone_indexes = vec4(0.0, 0.0, 0.0, 0.0);
|
||||||
|
//scaled_bone_weights = vec4(1.0, 0.0, 0.0, 0.0);
|
||||||
|
|
||||||
|
highp mat4 skin_matrix =
|
||||||
|
bone_transforms[ int(scaled_bone_indexes.x) ] * scaled_bone_weights.x +
|
||||||
|
bone_transforms[ int(scaled_bone_indexes.y) ] * scaled_bone_weights.y +
|
||||||
|
bone_transforms[ int(scaled_bone_indexes.z) ] * scaled_bone_weights.z +
|
||||||
|
bone_transforms[ int(scaled_bone_indexes.w) ] * scaled_bone_weights.w;
|
||||||
|
//skin_matrix = bone_transforms[0];
|
||||||
|
highp vec3 vertex_position_skinned = (skin_matrix * vec4(vertex_position, 1)).xyz;
|
||||||
|
|
||||||
|
highp vec3 vertex_normal_skinned = normalize(mat3(skin_matrix) * vertex_normal);
|
||||||
|
#if HAS_NORMAL_MAP == 1
|
||||||
|
highp vec3 vertex_tangent_skinned = normalize(mat3(skin_matrix) * vertex_tangent);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Transform position
|
||||||
|
gl_Position = mvp_matrix * vec4(vertex_position_skinned,1.0);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#if HAS_DIFFUSE_MAP == 1 || (HAS_NORMAL_MAP == 1 && ENABLE_PER_PIXEL == 1) || (HAS_SPEC_MAP == 1 && ENABLE_PER_PIXEL == 1) || (HAS_REFLECTION_MAP == 1 && ENABLE_PER_PIXEL == 1)
|
||||||
|
// Pass UV co-ordinates
|
||||||
|
texCoord = vertex_uv.st;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Scaled and translated normal map UV's
|
||||||
|
#if (HAS_NORMAL_MAP_OFFSET == 1 || HAS_NORMAL_MAP_SCALE == 1) && ENABLE_PER_PIXEL == 1
|
||||||
|
normal_uv = texCoord;
|
||||||
|
|
||||||
|
#if HAS_NORMAL_MAP_OFFSET == 1
|
||||||
|
normal_uv += normalTexture_Offset;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if HAS_NORMAL_MAP_SCALE == 1
|
||||||
|
normal_uv *= normalTexture_Scale;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if GBUFFER_PASS != 1 || ALPHA_TEST == 1
|
||||||
|
// Scaled and translated diffuse map UV's
|
||||||
|
#if HAS_DIFFUSE_MAP_OFFSET == 1 || HAS_DIFFUSE_MAP_SCALE == 1
|
||||||
|
diffuse_uv = texCoord;
|
||||||
|
|
||||||
|
#if HAS_DIFFUSE_MAP_OFFSET == 1
|
||||||
|
diffuse_uv += diffuseTexture_Offset;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if HAS_DIFFUSE_MAP_SCALE == 1
|
||||||
|
diffuse_uv *= diffuseTexture_Scale;
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#if GBUFFER_PASS == 1
|
||||||
|
#if HAS_NORMAL_MAP == 1
|
||||||
|
mediump vec3 a_bitangent = cross(vertex_normal_skinned, vertex_tangent_skinned);
|
||||||
|
tangent_to_view_matrix[0] = vec3(model_view_inverse_transpose_matrix * vec4(vertex_tangent_skinned, 1.0));
|
||||||
|
tangent_to_view_matrix[1] = vec3(model_view_inverse_transpose_matrix * vec4(a_bitangent, 1.0));
|
||||||
|
tangent_to_view_matrix[2] = vec3(model_view_inverse_transpose_matrix * vec4(vertex_normal_skinned, 1.0));
|
||||||
|
#else
|
||||||
|
normal = vertex_normal_skinned;
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
|
||||||
|
#if HAS_REFLECTION_CUBE_MAP == 1
|
||||||
|
#if HAS_NORMAL_MAP == 1
|
||||||
|
|
||||||
|
#else
|
||||||
|
// Calculate reflection vector as I - 2.0 * dot(N, I) * N
|
||||||
|
mediump vec3 eyeVec = normalize(camera_position_model_space - vertex_position_skinned);
|
||||||
|
mediump vec3 incidenceVec = -eyeVec;
|
||||||
|
reflectionVec = mat3(model_matrix) * (incidenceVec - 2.0 * dot(vertex_normal_skinned, incidenceVec) * vertex_normal_skinned);
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef NEED_EYEVEC
|
||||||
|
eyeVec = normalize(camera_position_model_space - vertex_position_skinned);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if HAS_LIGHT_MAP == 1
|
||||||
|
// Pass shadow UV co-ordinates
|
||||||
|
lightmap_uv = vertex_lightmap_uv.st;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#if ENABLE_PER_PIXEL == 1
|
||||||
|
// Scaled and translated specular map UV's
|
||||||
|
#if HAS_SPEC_MAP_OFFSET == 1 || HAS_SPEC_MAP_SCALE == 1
|
||||||
|
spec_uv = texCoord;
|
||||||
|
#if HAS_SPEC_MAP_OFFSET == 1
|
||||||
|
spec_uv += specularTexture_Offset;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if HAS_SPEC_MAP_SCALE == 1
|
||||||
|
spec_uv *= specularTexture_Scale;
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Scaled and translated reflection map UV's
|
||||||
|
#if HAS_REFLECTION_MAP_OFFSET == 1 || HAS_REFLECTION_MAP_SCALE == 1
|
||||||
|
reflection_uv = texCoord;
|
||||||
|
#if HAS_REFLECTION_MAP_OFFSET == 1
|
||||||
|
reflection_uv += reflectionTexture_Offset;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if HAS_REFLECTION_MAP_SCALE == 1
|
||||||
|
reflection_uv *= reflectionTexture_Scale;
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#if SHADOW_QUALITY >= 1
|
||||||
|
shadowMapCoord1 = shadow_mvp1 * vec4(vertex_position_skinned,1.0);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if SHADOW_QUALITY >= 2
|
||||||
|
shadowMapCoord2 = shadow_mvp2 * vec4(vertex_position_skinned,1.0);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if SHADOW_QUALITY >= 3
|
||||||
|
shadowMapCoord3 = shadow_mvp3 * vec4(vertex_position_skinned,1.0);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// ----------- Directional Light (Sun) -----------
|
||||||
|
#if HAS_NORMAL_MAP == 1
|
||||||
|
// ----- Calculate per-pixel lighting in tangent space, for normal mapping ------
|
||||||
|
mediump vec3 a_bitangent = cross(vertex_normal_skinned, vertex_tangent_skinned);
|
||||||
|
#if HAS_REFLECTION_CUBE_MAP == 0
|
||||||
|
// The cube map reflections also require an eyeVec as a varying attribute when normal mapping, so only re-calculate here when needed
|
||||||
|
mediump vec3 eyeVec = normalize(camera_position_model_space - vertex_position_skinned);
|
||||||
|
#else
|
||||||
|
tangent_to_world_matrix[0] = vec3(model_inverse_transpose_matrix * vec4(vertex_tangent_skinned, 1.0));
|
||||||
|
tangent_to_world_matrix[1] = vec3(model_inverse_transpose_matrix * vec4(a_bitangent, 1.0));
|
||||||
|
tangent_to_world_matrix[2] = vec3(model_inverse_transpose_matrix * vec4(vertex_normal_skinned, 1.0));
|
||||||
|
#endif
|
||||||
|
|
||||||
|
lightVec = normalize(vec3(dot(light_direction_model_space, vertex_tangent_skinned), dot(light_direction_model_space, a_bitangent), dot(light_direction_model_space, vertex_normal_skinned)));
|
||||||
|
halfVec = normalize(vec3(dot(eyeVec, vertex_tangent_skinned), dot(eyeVec, a_bitangent), dot(eyeVec, vertex_normal_skinned)));
|
||||||
|
halfVec = normalize(halfVec + lightVec); // Normalizing anyways, no need to divide by 2
|
||||||
|
#else
|
||||||
|
// ------ Calculate per-pixel lighting without normal mapping ------
|
||||||
|
normal = vertex_normal_skinned;
|
||||||
|
lightVec = light_direction_model_space;
|
||||||
|
halfVec = normalize((normalize(camera_position_model_space - vertex_position_skinned) + lightVec)); // Normalizing anyways, no need to divide by 2
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
|
||||||
|
// ------ Calculate per-vertex lighting ------
|
||||||
|
mediump vec3 halfVec = normalize((normalize(camera_position_model_space - vertex_position_skinned) + light_direction_model_space)); // Normalizing anyways, no need to divide by 2
|
||||||
|
lamberFactor = max(0.0,dot(light_direction_model_space, vertex_normal_skinned));
|
||||||
|
specularFactor = max(0.0,pow(dot(halfVec,vertex_normal_skinned), material_shininess));
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
}
|
||||||
35
standard_assets/shaders/ShadowShader_osx.fsh
Normal file
35
standard_assets/shaders/ShadowShader_osx.fsh
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
// Copyright 2012 Kearwood Gilbert. All rights reserved.
|
||||||
|
//
|
||||||
|
// Redistribution and use in source and binary forms, with or without modification, are
|
||||||
|
// permitted provided that the following conditions are met:
|
||||||
|
//
|
||||||
|
// 1. Redistributions of source code must retain the above copyright notice, this list of
|
||||||
|
// conditions and the following disclaimer.
|
||||||
|
//
|
||||||
|
// 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
||||||
|
// of conditions and the following disclaimer in the documentation and/or other materials
|
||||||
|
// provided with the distribution.
|
||||||
|
//
|
||||||
|
// THIS SOFTWARE IS PROVIDED BY KEARWOOD GILBERT ''AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||||
|
// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL KEARWOOD GILBERT OR
|
||||||
|
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||||
|
// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||||
|
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||||
|
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
|
// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
//
|
||||||
|
// The views and conclusions contained in the software and documentation are those of the
|
||||||
|
// authors and should not be interpreted as representing official policies, either expressed
|
||||||
|
// or implied, of Kearwood Gilbert.
|
||||||
|
//
|
||||||
|
|
||||||
|
//in mediump vec2 texCoord;
|
||||||
|
|
||||||
|
out vec4 colorOut;
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
colorOut = vec4(1.0, 1.0, 1.0, 1.0);
|
||||||
|
}
|
||||||
47
standard_assets/shaders/ShadowShader_osx.vsh
Normal file
47
standard_assets/shaders/ShadowShader_osx.vsh
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
// Copyright 2012 Kearwood Gilbert. All rights reserved.
|
||||||
|
//
|
||||||
|
// Redistribution and use in source and binary forms, with or without modification, are
|
||||||
|
// permitted provided that the following conditions are met:
|
||||||
|
//
|
||||||
|
// 1. Redistributions of source code must retain the above copyright notice, this list of
|
||||||
|
// conditions and the following disclaimer.
|
||||||
|
//
|
||||||
|
// 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
||||||
|
// of conditions and the following disclaimer in the documentation and/or other materials
|
||||||
|
// provided with the distribution.
|
||||||
|
//
|
||||||
|
// THIS SOFTWARE IS PROVIDED BY KEARWOOD GILBERT ''AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||||
|
// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL KEARWOOD GILBERT OR
|
||||||
|
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||||
|
// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||||
|
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||||
|
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
|
// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
//
|
||||||
|
// The views and conclusions contained in the software and documentation are those of the
|
||||||
|
// authors and should not be interpreted as representing official policies, either expressed
|
||||||
|
// or implied, of Kearwood Gilbert.
|
||||||
|
//
|
||||||
|
|
||||||
|
#define SHADOW_BIAS 0.01
|
||||||
|
|
||||||
|
|
||||||
|
in highp vec4 vertex_position;
|
||||||
|
uniform highp mat4 mvp_matrix; // mvp_matrix is the result of multiplying the model, view, and projection matrices
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
// Transform position
|
||||||
|
/*
|
||||||
|
position = shadow_mvp1 * vec4(vertex_position,1.0);
|
||||||
|
*/
|
||||||
|
gl_Position = mvp_matrix * vertex_position;
|
||||||
|
gl_Position.z += SHADOW_BIAS;
|
||||||
|
/*
|
||||||
|
// Pass UV co-ordinates
|
||||||
|
texCoord = vertex_uv.st;
|
||||||
|
*/
|
||||||
|
|
||||||
|
}
|
||||||
38
standard_assets/shaders/debug_font_osx.fsh
Normal file
38
standard_assets/shaders/debug_font_osx.fsh
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
// Copyright 2012 Kearwood Gilbert. All rights reserved.
|
||||||
|
//
|
||||||
|
// Redistribution and use in source and binary forms, with or without modification, are
|
||||||
|
// permitted provided that the following conditions are met:
|
||||||
|
//
|
||||||
|
// 1. Redistributions of source code must retain the above copyright notice, this list of
|
||||||
|
// conditions and the following disclaimer.
|
||||||
|
//
|
||||||
|
// 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
||||||
|
// of conditions and the following disclaimer in the documentation and/or other materials
|
||||||
|
// provided with the distribution.
|
||||||
|
//
|
||||||
|
// THIS SOFTWARE IS PROVIDED BY KEARWOOD GILBERT ''AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||||
|
// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL KEARWOOD GILBERT OR
|
||||||
|
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||||
|
// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||||
|
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||||
|
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
|
// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
//
|
||||||
|
// The views and conclusions contained in the software and documentation are those of the
|
||||||
|
// authors and should not be interpreted as representing official policies, either expressed
|
||||||
|
// or implied, of Kearwood Gilbert.
|
||||||
|
//
|
||||||
|
|
||||||
|
out vec4 colorOut;
|
||||||
|
|
||||||
|
in mediump vec2 textureCoordinate;
|
||||||
|
|
||||||
|
uniform sampler2D diffuseTexture;
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
vec4 font_color = texture(diffuseTexture, textureCoordinate);
|
||||||
|
colorOut = vec4(font_color.r, font_color.g, font_color.b, font_color.r + 0.50);
|
||||||
|
}
|
||||||
38
standard_assets/shaders/debug_font_osx.vsh
Normal file
38
standard_assets/shaders/debug_font_osx.vsh
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
// Copyright 2012 Kearwood Gilbert. All rights reserved.
|
||||||
|
//
|
||||||
|
// Redistribution and use in source and binary forms, with or without modification, are
|
||||||
|
// permitted provided that the following conditions are met:
|
||||||
|
//
|
||||||
|
// 1. Redistributions of source code must retain the above copyright notice, this list of
|
||||||
|
// conditions and the following disclaimer.
|
||||||
|
//
|
||||||
|
// 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
||||||
|
// of conditions and the following disclaimer in the documentation and/or other materials
|
||||||
|
// provided with the distribution.
|
||||||
|
//
|
||||||
|
// THIS SOFTWARE IS PROVIDED BY KEARWOOD GILBERT ''AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||||
|
// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL KEARWOOD GILBERT OR
|
||||||
|
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||||
|
// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||||
|
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||||
|
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
|
// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
//
|
||||||
|
// The views and conclusions contained in the software and documentation are those of the
|
||||||
|
// authors and should not be interpreted as representing official policies, either expressed
|
||||||
|
// or implied, of Kearwood Gilbert.
|
||||||
|
//
|
||||||
|
|
||||||
|
out mediump vec2 textureCoordinate;
|
||||||
|
|
||||||
|
in vec4 vertex_position;
|
||||||
|
in lowp vec2 vertex_uv;
|
||||||
|
uniform highp mat4 mvp_matrix; // mvp_matrix is the result of multiplying the model, view, and projection matrices
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
gl_Position = /*mvp_matrix * */vertex_position;
|
||||||
|
textureCoordinate = vertex_uv;
|
||||||
|
}
|
||||||
45
standard_assets/shaders/dust_particle_osx.fsh
Normal file
45
standard_assets/shaders/dust_particle_osx.fsh
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
//
|
||||||
|
// dust_particle.fsh
|
||||||
|
// KREngine
|
||||||
|
//
|
||||||
|
// Copyright 2012 Kearwood Gilbert. All rights reserved.
|
||||||
|
//
|
||||||
|
// Redistribution and use in source and binary forms, with or without modification, are
|
||||||
|
// permitted provided that the following conditions are met:
|
||||||
|
//
|
||||||
|
// 1. Redistributions of source code must retain the above copyright notice, this list of
|
||||||
|
// conditions and the following disclaimer.
|
||||||
|
//
|
||||||
|
// 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
||||||
|
// of conditions and the following disclaimer in the documentation and/or other materials
|
||||||
|
// provided with the distribution.
|
||||||
|
//
|
||||||
|
// THIS SOFTWARE IS PROVIDED BY KEARWOOD GILBERT ''AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||||
|
// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL KEARWOOD GILBERT OR
|
||||||
|
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||||
|
// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||||
|
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||||
|
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
|
// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
//
|
||||||
|
// The views and conclusions contained in the software and documentation are those of the
|
||||||
|
// authors and should not be interpreted as representing official policies, either expressed
|
||||||
|
// or implied, of Kearwood Gilbert.
|
||||||
|
//
|
||||||
|
|
||||||
|
//#extension GL_EXT_shadow_samplers : require
|
||||||
|
|
||||||
|
out vec4 colorOut;
|
||||||
|
|
||||||
|
in mediump vec2 texCoord;
|
||||||
|
|
||||||
|
in mediump vec4 shadowMapCoord1;
|
||||||
|
uniform sampler2DShadow shadowTexture1;
|
||||||
|
uniform mediump vec3 light_color;
|
||||||
|
in lowp float intensity_modulate;
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
colorOut = vec4(light_color, 1.0) * shadow2DProj(shadowTexture1, shadowMapCoord1) * max(1.0 - texCoord.x*texCoord.x-texCoord.y*texCoord.y, 0.0) * intensity_modulate;
|
||||||
|
}
|
||||||
57
standard_assets/shaders/dust_particle_osx.vsh
Normal file
57
standard_assets/shaders/dust_particle_osx.vsh
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
//
|
||||||
|
// dust_particle.vsh
|
||||||
|
// KREngine
|
||||||
|
//
|
||||||
|
// Copyright 2012 Kearwood Gilbert. All rights reserved.
|
||||||
|
//
|
||||||
|
// Redistribution and use in source and binary forms, with or without modification, are
|
||||||
|
// permitted provided that the following conditions are met:
|
||||||
|
//
|
||||||
|
// 1. Redistributions of source code must retain the above copyright notice, this list of
|
||||||
|
// conditions and the following disclaimer.
|
||||||
|
//
|
||||||
|
// 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
||||||
|
// of conditions and the following disclaimer in the documentation and/or other materials
|
||||||
|
// provided with the distribution.
|
||||||
|
//
|
||||||
|
// THIS SOFTWARE IS PROVIDED BY KEARWOOD GILBERT ''AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||||
|
// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL KEARWOOD GILBERT OR
|
||||||
|
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||||
|
// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||||
|
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||||
|
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
|
// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
//
|
||||||
|
// The views and conclusions contained in the software and documentation are those of the
|
||||||
|
// authors and should not be interpreted as representing official policies, either expressed
|
||||||
|
// or implied, of Kearwood Gilbert.
|
||||||
|
//
|
||||||
|
|
||||||
|
in mediump vec2 vertex_uv;
|
||||||
|
uniform highp mat4 mvp_matrix; // mvp_matrix is the result of multiplying the model, view, and projection matrices
|
||||||
|
uniform mediump vec4 viewport;
|
||||||
|
uniform mediump float flare_size;
|
||||||
|
in vec4 vertex_position;
|
||||||
|
uniform highp vec3 particle_origin;
|
||||||
|
|
||||||
|
uniform highp mat4 shadow_mvp1;
|
||||||
|
out mediump vec4 shadowMapCoord1;
|
||||||
|
|
||||||
|
out mediump vec2 texCoord;
|
||||||
|
uniform highp float time_absolute;
|
||||||
|
out lowp float intensity_modulate;
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
highp vec4 offset_center = vertex_position + vec4(particle_origin, 0.0);
|
||||||
|
offset_center.xyz += vec3(sin((time_absolute + vertex_position.x * 100.0) * 0.05), sin((time_absolute + vertex_position.y * 100.0) * 0.07), sin((time_absolute + vertex_position.z * 100.0) * 0.03)) * 0.05;
|
||||||
|
offset_center = vec4(mod(offset_center.x + 1.0, 2.0) - 1.0, mod(offset_center.y + 1.0, 2.0) - 1.0, mod(offset_center.z + 1.0, 2.0) - 1.0, 1.0);
|
||||||
|
highp vec4 particle_center = mvp_matrix * offset_center;
|
||||||
|
texCoord = vertex_uv * 3.46410161513775; // 3.46410161513775 = 2 * sqrt(3); 1 / (2 * sqrt(3)) is the radius of a circle encompased by a equilateral triangle with a side length of 1.
|
||||||
|
gl_Position = particle_center + vec4(vertex_uv.x * viewport.w / viewport.z * 2.0 - 1.0, vertex_uv.y * 2.0 - 1.0, 0.0, 0.0) * flare_size;
|
||||||
|
|
||||||
|
shadowMapCoord1 = shadow_mvp1 * offset_center;
|
||||||
|
|
||||||
|
intensity_modulate = sin(time_absolute + mod(vertex_position.x * 100.0, 6.28318530717959)) * 0.5 + 0.5;
|
||||||
|
}
|
||||||
40
standard_assets/shaders/flare_osx.fsh
Normal file
40
standard_assets/shaders/flare_osx.fsh
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
//
|
||||||
|
// flare.fsh
|
||||||
|
// KREngine
|
||||||
|
//
|
||||||
|
// Copyright 2012 Kearwood Gilbert. All rights reserved.
|
||||||
|
//
|
||||||
|
// Redistribution and use in source and binary forms, with or without modification, are
|
||||||
|
// permitted provided that the following conditions are met:
|
||||||
|
//
|
||||||
|
// 1. Redistributions of source code must retain the above copyright notice, this list of
|
||||||
|
// conditions and the following disclaimer.
|
||||||
|
//
|
||||||
|
// 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
||||||
|
// of conditions and the following disclaimer in the documentation and/or other materials
|
||||||
|
// provided with the distribution.
|
||||||
|
//
|
||||||
|
// THIS SOFTWARE IS PROVIDED BY KEARWOOD GILBERT ''AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||||
|
// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL KEARWOOD GILBERT OR
|
||||||
|
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||||
|
// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||||
|
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||||
|
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
|
// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
//
|
||||||
|
// The views and conclusions contained in the software and documentation are those of the
|
||||||
|
// authors and should not be interpreted as representing official policies, either expressed
|
||||||
|
// or implied, of Kearwood Gilbert.
|
||||||
|
//
|
||||||
|
|
||||||
|
out vec4 colorOut;
|
||||||
|
|
||||||
|
in vec2 texCoord;
|
||||||
|
uniform sampler2D diffuseTexture;
|
||||||
|
uniform float material_alpha;
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
colorOut = vec4(vec3(texture(diffuseTexture, texCoord)), 1.0) * material_alpha;
|
||||||
|
}
|
||||||
42
standard_assets/shaders/flare_osx.vsh
Normal file
42
standard_assets/shaders/flare_osx.vsh
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
//
|
||||||
|
// flare.vsh
|
||||||
|
// KREngine
|
||||||
|
//
|
||||||
|
// Copyright 2012 Kearwood Gilbert. All rights reserved.
|
||||||
|
//
|
||||||
|
// Redistribution and use in source and binary forms, with or without modification, are
|
||||||
|
// permitted provided that the following conditions are met:
|
||||||
|
//
|
||||||
|
// 1. Redistributions of source code must retain the above copyright notice, this list of
|
||||||
|
// conditions and the following disclaimer.
|
||||||
|
//
|
||||||
|
// 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
||||||
|
// of conditions and the following disclaimer in the documentation and/or other materials
|
||||||
|
// provided with the distribution.
|
||||||
|
//
|
||||||
|
// THIS SOFTWARE IS PROVIDED BY KEARWOOD GILBERT ''AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||||
|
// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL KEARWOOD GILBERT OR
|
||||||
|
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||||
|
// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||||
|
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||||
|
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
|
// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
//
|
||||||
|
// The views and conclusions contained in the software and documentation are those of the
|
||||||
|
// authors and should not be interpreted as representing official policies, either expressed
|
||||||
|
// or implied, of Kearwood Gilbert.
|
||||||
|
//
|
||||||
|
|
||||||
|
in vec2 vertex_uv;
|
||||||
|
uniform mat4 mvp_matrix; // mvp_matrix is the result of multiplying the model, view, and projection matrices
|
||||||
|
uniform vec4 viewport;
|
||||||
|
uniform float flare_size;
|
||||||
|
|
||||||
|
out vec2 texCoord;
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
texCoord = vertex_uv;
|
||||||
|
gl_Position = mvp_matrix * vec4(0.0, 0.0, 0.0, 1.0) + vec4(vertex_uv.x * viewport.w / viewport.z * 2.0 - 1.0, vertex_uv.y * 2.0 - 1.0, 0.0, 0.0) * flare_size;
|
||||||
|
}
|
||||||
BIN
standard_assets/shaders/frag.spv
Normal file
BIN
standard_assets/shaders/frag.spv
Normal file
Binary file not shown.
61
standard_assets/shaders/light_directional_osx.fsh
Normal file
61
standard_assets/shaders/light_directional_osx.fsh
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
// Copyright 2012 Kearwood Gilbert. All rights reserved.
|
||||||
|
//
|
||||||
|
// Redistribution and use in source and binary forms, with or without modification, are
|
||||||
|
// permitted provided that the following conditions are met:
|
||||||
|
//
|
||||||
|
// 1. Redistributions of source code must retain the above copyright notice, this list of
|
||||||
|
// conditions and the following disclaimer.
|
||||||
|
//
|
||||||
|
// 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
||||||
|
// of conditions and the following disclaimer in the documentation and/or other materials
|
||||||
|
// provided with the distribution.
|
||||||
|
//
|
||||||
|
// THIS SOFTWARE IS PROVIDED BY KEARWOOD GILBERT ''AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||||
|
// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL KEARWOOD GILBERT OR
|
||||||
|
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||||
|
// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||||
|
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||||
|
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
|
// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
//
|
||||||
|
// The views and conclusions contained in the software and documentation are those of the
|
||||||
|
// authors and should not be interpreted as representing official policies, either expressed
|
||||||
|
// or implied, of Kearwood Gilbert.
|
||||||
|
//
|
||||||
|
|
||||||
|
out vec4 colorOut;
|
||||||
|
|
||||||
|
uniform sampler2D gbuffer_frame;
|
||||||
|
uniform sampler2D gbuffer_depth;
|
||||||
|
|
||||||
|
uniform mediump vec3 light_direction_view_space; // Must be normalized and converted to view space before entering shader
|
||||||
|
uniform lowp vec3 light_color;
|
||||||
|
uniform highp float light_intensity;
|
||||||
|
uniform mediump vec4 viewport;
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
lowp vec2 gbuffer_uv = vec2(gl_FragCoord.xy / viewport.zw); // FINDME, TODO - Dependent Texture Read adding latency, due to calculation of texture UV within fragment -- move to vertex shader?
|
||||||
|
lowp vec4 gbuffer_sample = texture(gbuffer_frame, gbuffer_uv);
|
||||||
|
|
||||||
|
mediump vec3 gbuffer_normal = normalize(2.0 * gbuffer_sample.rgb - 1.0);
|
||||||
|
mediump float gbuffer_specular_exponent = gbuffer_sample.a * 100.0;
|
||||||
|
|
||||||
|
mediump vec3 view_space_vertex_position = vec3(
|
||||||
|
((2.0 * gl_FragCoord.xy) - (2.0 * viewport.xy)) / (viewport.zw) - 1.0,
|
||||||
|
(2.0 * -texture(gbuffer_depth, gbuffer_uv).r - gl_DepthRange.near - gl_DepthRange.far) / (gl_DepthRange.far - gl_DepthRange.near)
|
||||||
|
);
|
||||||
|
|
||||||
|
//mediump float lamberFactor = max(0.0,dot(light_direction_view_space, gbuffer_normal)) * 0.2;
|
||||||
|
mediump float lamberFactor = dot(light_direction_view_space, gbuffer_normal) * 0.2;
|
||||||
|
|
||||||
|
mediump float specularFactor = 0.0;
|
||||||
|
|
||||||
|
mediump vec3 halfVec = normalize((normalize(- view_space_vertex_position) + light_direction_view_space)); // Normalizing anyways, no need to divide by 2
|
||||||
|
specularFactor = pow(dot(halfVec,gbuffer_normal), gbuffer_specular_exponent);
|
||||||
|
|
||||||
|
|
||||||
|
colorOut = vec4(light_color * lamberFactor, specularFactor) * light_intensity;
|
||||||
|
}
|
||||||
33
standard_assets/shaders/light_directional_osx.vsh
Normal file
33
standard_assets/shaders/light_directional_osx.vsh
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
// Copyright 2012 Kearwood Gilbert. All rights reserved.
|
||||||
|
//
|
||||||
|
// Redistribution and use in source and binary forms, with or without modification, are
|
||||||
|
// permitted provided that the following conditions are met:
|
||||||
|
//
|
||||||
|
// 1. Redistributions of source code must retain the above copyright notice, this list of
|
||||||
|
// conditions and the following disclaimer.
|
||||||
|
//
|
||||||
|
// 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
||||||
|
// of conditions and the following disclaimer in the documentation and/or other materials
|
||||||
|
// provided with the distribution.
|
||||||
|
//
|
||||||
|
// THIS SOFTWARE IS PROVIDED BY KEARWOOD GILBERT ''AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||||
|
// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL KEARWOOD GILBERT OR
|
||||||
|
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||||
|
// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||||
|
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||||
|
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
|
// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
//
|
||||||
|
// The views and conclusions contained in the software and documentation are those of the
|
||||||
|
// authors and should not be interpreted as representing official policies, either expressed
|
||||||
|
// or implied, of Kearwood Gilbert.
|
||||||
|
//
|
||||||
|
|
||||||
|
in vec4 vertex_position;
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
gl_Position = vertex_position;
|
||||||
|
}
|
||||||
74
standard_assets/shaders/light_point_inside_osx.fsh
Normal file
74
standard_assets/shaders/light_point_inside_osx.fsh
Normal file
@@ -0,0 +1,74 @@
|
|||||||
|
// Copyright 2012 Kearwood Gilbert. All rights reserved.
|
||||||
|
//
|
||||||
|
// Redistribution and use in source and binary forms, with or without modification, are
|
||||||
|
// permitted provided that the following conditions are met:
|
||||||
|
//
|
||||||
|
// 1. Redistributions of source code must retain the above copyright notice, this list of
|
||||||
|
// conditions and the following disclaimer.
|
||||||
|
//
|
||||||
|
// 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
||||||
|
// of conditions and the following disclaimer in the documentation and/or other materials
|
||||||
|
// provided with the distribution.
|
||||||
|
//
|
||||||
|
// THIS SOFTWARE IS PROVIDED BY KEARWOOD GILBERT ''AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||||
|
// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL KEARWOOD GILBERT OR
|
||||||
|
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||||
|
// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||||
|
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||||
|
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
|
// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
//
|
||||||
|
// The views and conclusions contained in the software and documentation are those of the
|
||||||
|
// authors and should not be interpreted as representing official policies, either expressed
|
||||||
|
// or implied, of Kearwood Gilbert.
|
||||||
|
//
|
||||||
|
|
||||||
|
out vec4 colorOut;
|
||||||
|
|
||||||
|
uniform sampler2D gbuffer_frame;
|
||||||
|
uniform sampler2D gbuffer_depth;
|
||||||
|
|
||||||
|
uniform lowp vec3 light_color;
|
||||||
|
uniform highp float light_intensity;
|
||||||
|
uniform highp float light_decay_start;
|
||||||
|
uniform highp float light_cutoff;
|
||||||
|
uniform mediump vec4 viewport;
|
||||||
|
|
||||||
|
uniform highp mat4 inv_projection_matrix;
|
||||||
|
|
||||||
|
uniform highp vec3 view_space_model_origin;
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
|
||||||
|
lowp vec2 gbuffer_uv = vec2(gl_FragCoord.xy / viewport.zw); // FINDME, TODO - Dependent Texture Read adding latency, due to calculation of texture UV within fragment -- move to vertex shader?
|
||||||
|
lowp vec4 gbuffer_sample = texture(gbuffer_frame, gbuffer_uv);
|
||||||
|
|
||||||
|
mediump vec3 gbuffer_normal = normalize(2.0 * gbuffer_sample.rgb - 1.0);
|
||||||
|
mediump float gbuffer_specular_exponent = gbuffer_sample.a * 100.0;
|
||||||
|
|
||||||
|
mediump vec4 clip_space_vertex_position = vec4(
|
||||||
|
gl_FragCoord.xy / viewport.zw * 2.0 - 1.0,
|
||||||
|
texture(gbuffer_depth, gbuffer_uv).r * 2.0 - 1.0,
|
||||||
|
1.0
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
mediump vec4 view_space_vertex_position = inv_projection_matrix * clip_space_vertex_position;
|
||||||
|
view_space_vertex_position.xyz /= view_space_vertex_position.w;
|
||||||
|
|
||||||
|
mediump float light_distance = max(0.0, distance(view_space_model_origin.xyz, view_space_vertex_position.xyz) - light_decay_start);
|
||||||
|
mediump float light_attenuation = (light_intensity / ((light_distance + 1.0) * (light_distance + 1.0)) - light_cutoff) / (1.0 - light_cutoff);
|
||||||
|
mediump vec3 light_vec = normalize(view_space_model_origin.xyz - view_space_vertex_position.xyz);
|
||||||
|
mediump float lamberFactor = dot(light_vec, gbuffer_normal) * 0.2;
|
||||||
|
|
||||||
|
mediump float specularFactor = 0.0;
|
||||||
|
//if(gbuffer_specular_exponent > 0.0) {
|
||||||
|
mediump vec3 halfVec = normalize((normalize(- view_space_vertex_position.xyz) + light_vec));
|
||||||
|
specularFactor = pow(dot(halfVec,gbuffer_normal), gbuffer_specular_exponent);
|
||||||
|
//}
|
||||||
|
|
||||||
|
colorOut = vec4(light_color * lamberFactor, specularFactor) * light_attenuation;
|
||||||
|
}
|
||||||
33
standard_assets/shaders/light_point_inside_osx.vsh
Normal file
33
standard_assets/shaders/light_point_inside_osx.vsh
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
// Copyright 2012 Kearwood Gilbert. All rights reserved.
|
||||||
|
//
|
||||||
|
// Redistribution and use in source and binary forms, with or without modification, are
|
||||||
|
// permitted provided that the following conditions are met:
|
||||||
|
//
|
||||||
|
// 1. Redistributions of source code must retain the above copyright notice, this list of
|
||||||
|
// conditions and the following disclaimer.
|
||||||
|
//
|
||||||
|
// 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
||||||
|
// of conditions and the following disclaimer in the documentation and/or other materials
|
||||||
|
// provided with the distribution.
|
||||||
|
//
|
||||||
|
// THIS SOFTWARE IS PROVIDED BY KEARWOOD GILBERT ''AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||||
|
// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL KEARWOOD GILBERT OR
|
||||||
|
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||||
|
// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||||
|
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||||
|
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
|
// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
//
|
||||||
|
// The views and conclusions contained in the software and documentation are those of the
|
||||||
|
// authors and should not be interpreted as representing official policies, either expressed
|
||||||
|
// or implied, of Kearwood Gilbert.
|
||||||
|
//
|
||||||
|
|
||||||
|
in vec4 vertex_position;
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
gl_Position = vertex_position;
|
||||||
|
}
|
||||||
74
standard_assets/shaders/light_point_osx.fsh
Normal file
74
standard_assets/shaders/light_point_osx.fsh
Normal file
@@ -0,0 +1,74 @@
|
|||||||
|
// Copyright 2012 Kearwood Gilbert. All rights reserved.
|
||||||
|
//
|
||||||
|
// Redistribution and use in source and binary forms, with or without modification, are
|
||||||
|
// permitted provided that the following conditions are met:
|
||||||
|
//
|
||||||
|
// 1. Redistributions of source code must retain the above copyright notice, this list of
|
||||||
|
// conditions and the following disclaimer.
|
||||||
|
//
|
||||||
|
// 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
||||||
|
// of conditions and the following disclaimer in the documentation and/or other materials
|
||||||
|
// provided with the distribution.
|
||||||
|
//
|
||||||
|
// THIS SOFTWARE IS PROVIDED BY KEARWOOD GILBERT ''AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||||
|
// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL KEARWOOD GILBERT OR
|
||||||
|
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||||
|
// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||||
|
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||||
|
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
|
// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
//
|
||||||
|
// The views and conclusions contained in the software and documentation are those of the
|
||||||
|
// authors and should not be interpreted as representing official policies, either expressed
|
||||||
|
// or implied, of Kearwood Gilbert.
|
||||||
|
//
|
||||||
|
|
||||||
|
out vec4 colorOut;
|
||||||
|
|
||||||
|
uniform sampler2D gbuffer_frame;
|
||||||
|
uniform sampler2D gbuffer_depth;
|
||||||
|
|
||||||
|
uniform lowp vec3 light_color;
|
||||||
|
uniform highp float light_intensity;
|
||||||
|
uniform highp float light_decay_start;
|
||||||
|
uniform highp float light_cutoff;
|
||||||
|
uniform mediump vec4 viewport;
|
||||||
|
|
||||||
|
uniform highp mat4 inv_projection_matrix;
|
||||||
|
|
||||||
|
uniform highp vec3 view_space_model_origin; // For point lights, this is the position of the light
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
|
||||||
|
lowp vec2 gbuffer_uv = vec2(gl_FragCoord.xy / viewport.zw); // FINDME, TODO - Dependent Texture Read adding latency, due to calculation of texture UV within fragment -- move to vertex shader?
|
||||||
|
lowp vec4 gbuffer_sample = texture(gbuffer_frame, gbuffer_uv);
|
||||||
|
|
||||||
|
mediump vec3 gbuffer_normal = normalize(2.0 * gbuffer_sample.rgb - 1.0);
|
||||||
|
mediump float gbuffer_specular_exponent = gbuffer_sample.a * 100.0;
|
||||||
|
|
||||||
|
mediump vec4 clip_space_vertex_position = vec4(
|
||||||
|
gl_FragCoord.xy / viewport.zw * 2.0 - 1.0,
|
||||||
|
texture(gbuffer_depth, gbuffer_uv).r * 2.0 - 1.0,
|
||||||
|
1.0
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
mediump vec4 view_space_vertex_position = inv_projection_matrix * clip_space_vertex_position;
|
||||||
|
view_space_vertex_position.xyz /= view_space_vertex_position.w;
|
||||||
|
|
||||||
|
mediump float light_distance = max(0.0, distance(view_space_model_origin.xyz, view_space_vertex_position.xyz) - light_decay_start);
|
||||||
|
mediump float light_attenuation = (light_intensity / ((light_distance + 1.0) * (light_distance + 1.0)) - light_cutoff) / (1.0 - light_cutoff);
|
||||||
|
mediump vec3 light_vec = normalize(view_space_model_origin.xyz - view_space_vertex_position.xyz);
|
||||||
|
mediump float lamberFactor = dot(light_vec, gbuffer_normal) * 0.2;
|
||||||
|
|
||||||
|
mediump float specularFactor = 0.0;
|
||||||
|
//if(gbuffer_specular_exponent > 0.0) {
|
||||||
|
mediump vec3 halfVec = normalize((normalize(- view_space_vertex_position.xyz) + light_vec));
|
||||||
|
specularFactor = pow(dot(halfVec,gbuffer_normal), gbuffer_specular_exponent);
|
||||||
|
//}
|
||||||
|
|
||||||
|
colorOut = vec4(light_color * lamberFactor, specularFactor) * light_attenuation;
|
||||||
|
}
|
||||||
35
standard_assets/shaders/light_point_osx.vsh
Normal file
35
standard_assets/shaders/light_point_osx.vsh
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
// Copyright 2012 Kearwood Gilbert. All rights reserved.
|
||||||
|
//
|
||||||
|
// Redistribution and use in source and binary forms, with or without modification, are
|
||||||
|
// permitted provided that the following conditions are met:
|
||||||
|
//
|
||||||
|
// 1. Redistributions of source code must retain the above copyright notice, this list of
|
||||||
|
// conditions and the following disclaimer.
|
||||||
|
//
|
||||||
|
// 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
||||||
|
// of conditions and the following disclaimer in the documentation and/or other materials
|
||||||
|
// provided with the distribution.
|
||||||
|
//
|
||||||
|
// THIS SOFTWARE IS PROVIDED BY KEARWOOD GILBERT ''AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||||
|
// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL KEARWOOD GILBERT OR
|
||||||
|
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||||
|
// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||||
|
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||||
|
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
|
// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
//
|
||||||
|
// The views and conclusions contained in the software and documentation are those of the
|
||||||
|
// authors and should not be interpreted as representing official policies, either expressed
|
||||||
|
// or implied, of Kearwood Gilbert.
|
||||||
|
//
|
||||||
|
|
||||||
|
in vec4 vertex_position;
|
||||||
|
uniform highp mat4 mvp_matrix; // mvp_matrix is the result of multiplying the model, view, and projection matrices
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
gl_Position = mvp_matrix * vertex_position;
|
||||||
|
gl_Position.z = max(gl_Position.z / gl_Position.w, 0.00) * gl_Position.w;
|
||||||
|
}
|
||||||
37
standard_assets/shaders/occlusion_test_osx.fsh
Normal file
37
standard_assets/shaders/occlusion_test_osx.fsh
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
//
|
||||||
|
// flare.fsh
|
||||||
|
// KREngine
|
||||||
|
//
|
||||||
|
// Copyright 2012 Kearwood Gilbert. All rights reserved.
|
||||||
|
//
|
||||||
|
// Redistribution and use in source and binary forms, with or without modification, are
|
||||||
|
// permitted provided that the following conditions are met:
|
||||||
|
//
|
||||||
|
// 1. Redistributions of source code must retain the above copyright notice, this list of
|
||||||
|
// conditions and the following disclaimer.
|
||||||
|
//
|
||||||
|
// 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
||||||
|
// of conditions and the following disclaimer in the documentation and/or other materials
|
||||||
|
// provided with the distribution.
|
||||||
|
//
|
||||||
|
// THIS SOFTWARE IS PROVIDED BY KEARWOOD GILBERT ''AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||||
|
// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL KEARWOOD GILBERT OR
|
||||||
|
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||||
|
// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||||
|
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||||
|
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
|
// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
//
|
||||||
|
// The views and conclusions contained in the software and documentation are those of the
|
||||||
|
// authors and should not be interpreted as representing official policies, either expressed
|
||||||
|
// or implied, of Kearwood Gilbert.
|
||||||
|
//
|
||||||
|
|
||||||
|
out vec4 colorOut;
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
//colorOut = vec4(0.00, 0.00, 0.00, 0.00);
|
||||||
|
colorOut = vec4(0.00, 0.00, 0.00, 0.00);
|
||||||
|
}
|
||||||
34
standard_assets/shaders/occlusion_test_osx.vsh
Normal file
34
standard_assets/shaders/occlusion_test_osx.vsh
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
// Copyright 2012 Kearwood Gilbert. All rights reserved.
|
||||||
|
//
|
||||||
|
// Redistribution and use in source and binary forms, with or without modification, are
|
||||||
|
// permitted provided that the following conditions are met:
|
||||||
|
//
|
||||||
|
// 1. Redistributions of source code must retain the above copyright notice, this list of
|
||||||
|
// conditions and the following disclaimer.
|
||||||
|
//
|
||||||
|
// 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
||||||
|
// of conditions and the following disclaimer in the documentation and/or other materials
|
||||||
|
// provided with the distribution.
|
||||||
|
//
|
||||||
|
// THIS SOFTWARE IS PROVIDED BY KEARWOOD GILBERT ''AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||||
|
// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL KEARWOOD GILBERT OR
|
||||||
|
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||||
|
// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||||
|
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||||
|
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
|
// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
//
|
||||||
|
// The views and conclusions contained in the software and documentation are those of the
|
||||||
|
// authors and should not be interpreted as representing official policies, either expressed
|
||||||
|
// or implied, of Kearwood Gilbert.
|
||||||
|
//
|
||||||
|
|
||||||
|
in vec4 vertex_position;
|
||||||
|
uniform highp mat4 mvp_matrix; // mvp_matrix is the result of multiplying the model, view, and projection matrices
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
gl_Position = mvp_matrix * vertex_position;
|
||||||
|
}
|
||||||
190
standard_assets/shaders/post_fx.frag
Normal file
190
standard_assets/shaders/post_fx.frag
Normal file
@@ -0,0 +1,190 @@
|
|||||||
|
// Copyright 2019 Kearwood Gilbert. All rights reserved.
|
||||||
|
//
|
||||||
|
// Redistribution and use in source and binary forms, with or without modification, are
|
||||||
|
// permitted provided that the following conditions are met:
|
||||||
|
//
|
||||||
|
// 1. Redistributions of source code must retain the above copyright notice, this list of
|
||||||
|
// conditions and the following disclaimer.
|
||||||
|
//
|
||||||
|
// 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
||||||
|
// of conditions and the following disclaimer in the documentation and/or other materials
|
||||||
|
// provided with the distribution.
|
||||||
|
//
|
||||||
|
// THIS SOFTWARE IS PROVIDED BY KEARWOOD GILBERT ''AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||||
|
// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL KEARWOOD GILBERT OR
|
||||||
|
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||||
|
// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||||
|
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||||
|
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
|
// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
//
|
||||||
|
// The views and conclusions contained in the software and documentation are those of the
|
||||||
|
// authors and should not be interpreted as representing official policies, either expressed
|
||||||
|
// or implied, of Kearwood Gilbert.
|
||||||
|
//
|
||||||
|
|
||||||
|
#define ENABLE_VIDEO_BG 0
|
||||||
|
#define PIXEL_SHIFT_1 0.001
|
||||||
|
#define PIXEL_SHIFT_2 0.002
|
||||||
|
#define PIXEL_SHIFT_3 0.003
|
||||||
|
#define PIXEL_SHIFT_4 0.004
|
||||||
|
|
||||||
|
in vec2 textureCoordinate;
|
||||||
|
|
||||||
|
#if ENABLE_VIDEO_BG == 1
|
||||||
|
uniform sampler2D videoFrame;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if ENABLE_FADE_COLOR == 1
|
||||||
|
uniform vec4 fade_color;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
uniform sampler2D renderFrame;
|
||||||
|
uniform sampler2D depthFrame;
|
||||||
|
|
||||||
|
#if VOLUMETRIC_ENVIRONMENT_DOWNSAMPLED == 1
|
||||||
|
uniform sampler2D volumetricEnvironmentFrame;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
out vec4 colorOut;
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
|
||||||
|
vec4 renderColor = texture(renderFrame, textureCoordinate);
|
||||||
|
#if DOF_QUALITY > 0 || ENABLE_FLASH == 1
|
||||||
|
float depth = texture(depthFrame, textureCoordinate).r;
|
||||||
|
#endif
|
||||||
|
vec4 pixelColor = renderColor;
|
||||||
|
|
||||||
|
|
||||||
|
#if DOF_QUALITY == 2
|
||||||
|
|
||||||
|
// Render high quality circle of confusion
|
||||||
|
// __XXX__
|
||||||
|
// _XXXXX_
|
||||||
|
// _XXXXX_
|
||||||
|
// _XXXXX_
|
||||||
|
// __XXX__
|
||||||
|
float cf1 = PIXEL_SHIFT_1;
|
||||||
|
float cf2 = PIXEL_SHIFT_2;
|
||||||
|
|
||||||
|
float bx1 = textureCoordinate.s + cf1;
|
||||||
|
float bx2 = textureCoordinate.s + cf2;
|
||||||
|
float bxm1 = textureCoordinate.s - cf1;
|
||||||
|
float bxm2 = textureCoordinate.s - cf2;
|
||||||
|
|
||||||
|
float by1 = textureCoordinate.t + cf1;
|
||||||
|
float by2 = textureCoordinate.t + cf2;
|
||||||
|
float bym1 = textureCoordinate.t - cf1;
|
||||||
|
float bym2 = textureCoordinate.t - cf2;
|
||||||
|
|
||||||
|
pixelColor += texture(renderFrame, vec2(bx1, textureCoordinate.t));
|
||||||
|
pixelColor += texture(renderFrame, vec2(bxm1, textureCoordinate.t));
|
||||||
|
pixelColor += texture(renderFrame, vec2(bx2, textureCoordinate.t));
|
||||||
|
pixelColor += texture(renderFrame, vec2(bxm2, textureCoordinate.t));
|
||||||
|
|
||||||
|
pixelColor += texture(renderFrame, vec2(textureCoordinate.s, by1));
|
||||||
|
pixelColor += texture(renderFrame, vec2(bx1, by1));
|
||||||
|
pixelColor += texture(renderFrame, vec2(bxm1, by1));
|
||||||
|
pixelColor += texture(renderFrame, vec2(bx2, by1));
|
||||||
|
pixelColor += texture(renderFrame, vec2(bxm2, by1));
|
||||||
|
|
||||||
|
pixelColor += texture(renderFrame, vec2(textureCoordinate.s, by2));
|
||||||
|
pixelColor += texture(renderFrame, vec2(bx1, by2));
|
||||||
|
pixelColor += texture(renderFrame, vec2(bxm1, by2));
|
||||||
|
|
||||||
|
pixelColor += texture(renderFrame, vec2(textureCoordinate.s,bym1));
|
||||||
|
pixelColor += texture(renderFrame, vec2(bx1,bym1));
|
||||||
|
pixelColor += texture(renderFrame, vec2(bxm1,bym1));
|
||||||
|
pixelColor += texture(renderFrame, vec2(bx2,bym1));
|
||||||
|
pixelColor += texture(renderFrame, vec2(bxm2,bym1));
|
||||||
|
|
||||||
|
pixelColor += texture(renderFrame, vec2(bx1, bym2));
|
||||||
|
pixelColor += texture(renderFrame, vec2(bx1, bym2));
|
||||||
|
pixelColor += texture(renderFrame, vec2(bxm1, bym2));
|
||||||
|
pixelColor /= 21.0;
|
||||||
|
|
||||||
|
#endif
|
||||||
|
// DOF_QUALITY == 2
|
||||||
|
|
||||||
|
#if DOF_QUALITY == 1
|
||||||
|
|
||||||
|
// Render low quality circle of confusion
|
||||||
|
// ___X___
|
||||||
|
// __XXX__
|
||||||
|
// _XXXXX_
|
||||||
|
// __XXX__
|
||||||
|
// ___X___
|
||||||
|
pixelColor += texture(renderFrame, textureCoordinate + vec2(0, -PIXEL_SHIFT_2));
|
||||||
|
pixelColor += texture(renderFrame, textureCoordinate + vec2(-PIXEL_SHIFT_1, -PIXEL_SHIFT_1));
|
||||||
|
pixelColor += texture(renderFrame, textureCoordinate + vec2(0, -PIXEL_SHIFT_1));
|
||||||
|
pixelColor += texture(renderFrame, textureCoordinate + vec2(+PIXEL_SHIFT_1, -PIXEL_SHIFT_1));
|
||||||
|
pixelColor += texture(renderFrame, textureCoordinate + vec2(-PIXEL_SHIFT_2, 0));
|
||||||
|
pixelColor += texture(renderFrame, textureCoordinate + vec2(-PIXEL_SHIFT_1, 0));
|
||||||
|
pixelColor += texture(renderFrame, textureCoordinate + vec2(+PIXEL_SHIFT_1, 0));
|
||||||
|
pixelColor += texture(renderFrame, textureCoordinate + vec2(+PIXEL_SHIFT_2, 0));
|
||||||
|
pixelColor += texture(renderFrame, textureCoordinate + vec2(-PIXEL_SHIFT_1, -PIXEL_SHIFT_1));
|
||||||
|
pixelColor += texture(renderFrame, textureCoordinate + vec2(0, -PIXEL_SHIFT_1));
|
||||||
|
pixelColor += texture(renderFrame, textureCoordinate + vec2(+PIXEL_SHIFT_1, -PIXEL_SHIFT_1));
|
||||||
|
pixelColor += texture(renderFrame, textureCoordinate + vec2(0, -PIXEL_SHIFT_2));
|
||||||
|
pixelColor /= 13.0;
|
||||||
|
|
||||||
|
#endif
|
||||||
|
// DOF_QUALITY == 1
|
||||||
|
|
||||||
|
#if DOF_QUALITY > 0
|
||||||
|
float focusDepth = texture(depthFrame, vec2(0.5, 0.5)).r;
|
||||||
|
float blurAmount = clamp((depth - DOF_DEPTH - focusDepth) / DOF_FALLOFF, 0.0, 1.0);
|
||||||
|
pixelColor = pixelColor * blurAmount + renderColor * (1.0 - blurAmount);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// ---- DEPTH_OF_FIELD END ----
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// ---- NIGHT_TIME START ----
|
||||||
|
#if ENABLE_FLASH == 1
|
||||||
|
// Un-comment to enable night time / flash effect
|
||||||
|
pixelColor *= vec4(vec3(1.0 - clamp((depth - FLASH_DEPTH) / FLASH_FALLOFF, 0.0, 1.0)) * FLASH_INTENSITY, 1.0);
|
||||||
|
//pixelColor *= vec4(vec3(clamp(1.0 / (depth - FLASH_DEPTH) * FLASH_FALLOFF, 0.0, 1.0) * FLASH_INTENSITY), 1.0);
|
||||||
|
|
||||||
|
#endif
|
||||||
|
// ---- NIGHT_TIME END ----
|
||||||
|
|
||||||
|
// ---- VIDEO_BG START ----
|
||||||
|
|
||||||
|
|
||||||
|
// ---- VIDEO_BG END ----
|
||||||
|
|
||||||
|
#if VOLUMETRIC_ENVIRONMENT_DOWNSAMPLED == 1
|
||||||
|
pixelColor += texture(volumetricEnvironmentFrame, textureCoordinate);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
// ---- VIGNETTE START ----
|
||||||
|
|
||||||
|
// Render vignette effect
|
||||||
|
|
||||||
|
#if ENABLE_VIGNETTE == 1
|
||||||
|
pixelColor *= vec4(vec3(clamp(1.0 - (distance(textureCoordinate, vec2(0.5, 0.5)) - VIGNETTE_RADIUS) / VIGNETTE_FALLOFF, 0.0, 1.0)), 1.0);
|
||||||
|
#endif
|
||||||
|
// ---- VIGNETTE END ----
|
||||||
|
|
||||||
|
#if ENABLE_FADE_COLOR == 1
|
||||||
|
pixelColor.rgb = mix(pixelColor.rgb, fade_color.rgb, fade_color.a);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
colorOut = pixelColor;
|
||||||
|
|
||||||
|
//PASSTHROUGH STATEMENT
|
||||||
|
// colorOut = texture(depthFrame, textureCoordinate);
|
||||||
|
|
||||||
|
//colorOut = vec4(vec3(blurAmount), 1.0);
|
||||||
|
|
||||||
|
colorOut = vec4(0.0, 0.0, 1.0, 1.0); // FINDME, KIP!!, HACK!!
|
||||||
|
}
|
||||||
|
|
||||||
7
standard_assets/shaders/post_fx.options
Normal file
7
standard_assets/shaders/post_fx.options
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
ENABLE_VIDEO_BG 0 1
|
||||||
|
ENABLE_FADE_COLOR 0 1
|
||||||
|
VOLUMETRIC_ENVIRONMENT_DOWNSAMPLED 0 1
|
||||||
|
DOF_QUALITY 0 1 2
|
||||||
|
ENABLE_FLASH 0 1
|
||||||
|
ENABLE_VIGNETTE 0 1
|
||||||
|
ENABLE_FADE_COLOR 0 1
|
||||||
38
standard_assets/shaders/post_fx.vert
Normal file
38
standard_assets/shaders/post_fx.vert
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
// Copyright 2019 Kearwood Gilbert. All rights reserved.
|
||||||
|
//
|
||||||
|
// Redistribution and use in source and binary forms, with or without modification, are
|
||||||
|
// permitted provided that the following conditions are met:
|
||||||
|
//
|
||||||
|
// 1. Redistributions of source code must retain the above copyright notice, this list of
|
||||||
|
// conditions and the following disclaimer.
|
||||||
|
//
|
||||||
|
// 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
||||||
|
// of conditions and the following disclaimer in the documentation and/or other materials
|
||||||
|
// provided with the distribution.
|
||||||
|
//
|
||||||
|
// THIS SOFTWARE IS PROVIDED BY KEARWOOD GILBERT ''AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||||
|
// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL KEARWOOD GILBERT OR
|
||||||
|
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||||
|
// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||||
|
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||||
|
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
|
// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
//
|
||||||
|
// The views and conclusions contained in the software and documentation are those of the
|
||||||
|
// authors and should not be interpreted as representing official policies, either expressed
|
||||||
|
// or implied, of Kearwood Gilbert.
|
||||||
|
//
|
||||||
|
|
||||||
|
uniform vec2 viewport_downsample;
|
||||||
|
in vec4 vertex_position;
|
||||||
|
in vec4 vertex_uv;
|
||||||
|
|
||||||
|
out vec2 textureCoordinate;
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
gl_Position = vertex_position;
|
||||||
|
textureCoordinate = vertex_uv.xy * viewport_downsample.xy;
|
||||||
|
}
|
||||||
38
standard_assets/shaders/simple_blit.frag
Normal file
38
standard_assets/shaders/simple_blit.frag
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
// Copyright 2019 Kearwood Gilbert. All rights reserved.
|
||||||
|
//
|
||||||
|
// Redistribution and use in source and binary forms, with or without modification, are
|
||||||
|
// permitted provided that the following conditions are met:
|
||||||
|
//
|
||||||
|
// 1. Redistributions of source code must retain the above copyright notice, this list of
|
||||||
|
// conditions and the following disclaimer.
|
||||||
|
//
|
||||||
|
// 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
||||||
|
// of conditions and the following disclaimer in the documentation and/or other materials
|
||||||
|
// provided with the distribution.
|
||||||
|
//
|
||||||
|
// THIS SOFTWARE IS PROVIDED BY KEARWOOD GILBERT ''AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||||
|
// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL KEARWOOD GILBERT OR
|
||||||
|
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||||
|
// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||||
|
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||||
|
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
|
// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
//
|
||||||
|
// The views and conclusions contained in the software and documentation are those of the
|
||||||
|
// authors and should not be interpreted as representing official policies, either expressed
|
||||||
|
// or implied, of Kearwood Gilbert.
|
||||||
|
//
|
||||||
|
|
||||||
|
#version 400
|
||||||
|
#extension GL_ARB_separate_shader_objects : enable
|
||||||
|
#extension GL_ARB_shading_language_420pack : enable
|
||||||
|
|
||||||
|
layout (binding = 1) uniform sampler2D diffuseTexture;
|
||||||
|
layout (location = 0) in vec2 textureCoordinate;
|
||||||
|
layout (location = 0) out vec4 colorOut;
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
colorOut = textureLod(diffuseTexture, textureCoordinate, 0.0);
|
||||||
|
}
|
||||||
42
standard_assets/shaders/simple_blit.vert
Normal file
42
standard_assets/shaders/simple_blit.vert
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
// Copyright 2019 Kearwood Gilbert. All rights reserved.
|
||||||
|
//
|
||||||
|
// Redistribution and use in source and binary forms, with or without modification, are
|
||||||
|
// permitted provided that the following conditions are met:
|
||||||
|
//
|
||||||
|
// 1. Redistributions of source code must retain the above copyright notice, this list of
|
||||||
|
// conditions and the following disclaimer.
|
||||||
|
//
|
||||||
|
// 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
||||||
|
// of conditions and the following disclaimer in the documentation and/or other materials
|
||||||
|
// provided with the distribution.
|
||||||
|
//
|
||||||
|
// THIS SOFTWARE IS PROVIDED BY KEARWOOD GILBERT ''AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||||
|
// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL KEARWOOD GILBERT OR
|
||||||
|
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||||
|
// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||||
|
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||||
|
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
|
// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
//
|
||||||
|
// The views and conclusions contained in the software and documentation are those of the
|
||||||
|
// authors and should not be interpreted as representing official policies, either expressed
|
||||||
|
// or implied, of Kearwood Gilbert.
|
||||||
|
//
|
||||||
|
|
||||||
|
#version 400
|
||||||
|
#extension GL_ARB_separate_shader_objects : enable
|
||||||
|
#extension GL_ARB_shading_language_420pack : enable
|
||||||
|
|
||||||
|
layout (std140, binding = 0) uniform buf {
|
||||||
|
mat4 mvp_matrix; // mvp_matrix is the result of multiplying the model, view, and projection matrices
|
||||||
|
} ubuf;
|
||||||
|
layout (location = 0) in vec4 vertex_position;
|
||||||
|
layout (location = 1) in vec2 vertex_uv;
|
||||||
|
layout (location = 0) out vec2 textureCoordinate;
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
textureCoordinate = vertex_uv;
|
||||||
|
gl_Position = ubuf.mvp_matrix * vertex_position;
|
||||||
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user