diff options
Diffstat (limited to 'src/Runtime/ogl-runtime/src/runtimerender/Qt3DSRenderMaterialShaderGenerator.h')
m--------- | src/Runtime/ogl-runtime | 0 | ||||
-rw-r--r-- | src/Runtime/ogl-runtime/src/runtimerender/Qt3DSRenderMaterialShaderGenerator.h | 152 |
2 files changed, 0 insertions, 152 deletions
diff --git a/src/Runtime/ogl-runtime b/src/Runtime/ogl-runtime new file mode 160000 +Subproject 2025912174c4cf99270b7439ec3b021e1d089ae diff --git a/src/Runtime/ogl-runtime/src/runtimerender/Qt3DSRenderMaterialShaderGenerator.h b/src/Runtime/ogl-runtime/src/runtimerender/Qt3DSRenderMaterialShaderGenerator.h deleted file mode 100644 index e8b9880d..00000000 --- a/src/Runtime/ogl-runtime/src/runtimerender/Qt3DSRenderMaterialShaderGenerator.h +++ /dev/null @@ -1,152 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2008-2012 NVIDIA Corporation. -** Copyright (C) 2017 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of Qt 3D Studio. -** -** $QT_BEGIN_LICENSE:GPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 or (at your option) any later version -** approved by the KDE Free Qt Foundation. The licenses are as published by -** the Free Software Foundation and appearing in the file LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ -#pragma once -#ifndef QT3DS_RENDER_MATERIAL_SHADER_GENERATOR_H -#define QT3DS_RENDER_MATERIAL_SHADER_GENERATOR_H -#include "Qt3DSRender.h" -#include "foundation/Qt3DSRefCounted.h" -#include "Qt3DSRenderShaderKeys.h" -#include "Qt3DSRenderShaderCache.h" -#include "Qt3DSRenderShaderCodeGeneratorV2.h" - -namespace qt3ds { -namespace render { - -// these are our current shader limits -#define QT3DS_MAX_NUM_LIGHTS 16 -#define QT3DS_MAX_NUM_SHADOWS 8 - - // note this struct must exactly match the memory layout of the - // struct sampleLight.glsllib and sampleArea.glsllib. If you make changes here you need - // to adjust the code in sampleLight.glsllib and sampleArea.glsllib as well - struct SLightSourceShader - { - QT3DSVec4 m_position; - QT3DSVec4 m_direction; // Specifies the light direction in world coordinates. - QT3DSVec4 m_up; - QT3DSVec4 m_right; - QT3DSVec4 m_diffuse; - QT3DSVec4 m_ambient; - QT3DSVec4 m_specular; - QT3DSF32 m_spotExponent; // Specifies the intensity distribution of the light. - QT3DSF32 m_spotCutoff; // Specifies the maximum spread angle of the light. - QT3DSF32 m_constantAttenuation; // Specifies the constant light attenuation factor. - QT3DSF32 m_linearAttenuation; // Specifies the linear light attenuation factor. - QT3DSF32 m_quadraticAttenuation; // Specifies the quadratic light attenuation factor. - QT3DSF32 m_range; // Specifies the maximum distance of the light influence - QT3DSF32 m_width; // Specifies the width of the area light surface. - QT3DSF32 m_height; // Specifies the height of the area light surface; - QT3DSVec4 m_shadowControls; - QT3DSMat44 m_shadowView; - QT3DSI32 m_shadowIdx; - QT3DSF32 m_padding1[3]; - }; - - struct SLayerGlobalRenderProperties - { - const SLayer &m_Layer; - SCamera &m_Camera; - QT3DSVec3 m_CameraDirection; - NVDataRef<SLight *> m_Lights; - NVDataRef<QT3DSVec3> m_LightDirections; - Qt3DSShadowMap *m_ShadowMapManager; - NVRenderTexture2D *m_DepthTexture; - NVRenderTexture2D *m_SSaoTexture; - SImage *m_LightProbe; - SImage *m_LightProbe2; - QT3DSF32 m_ProbeHorizon; - QT3DSF32 m_ProbeBright; - QT3DSF32 m_Probe2Window; - QT3DSF32 m_Probe2Pos; - QT3DSF32 m_Probe2Fade; - QT3DSF32 m_ProbeFOV; - - SLayerGlobalRenderProperties(const SLayer &inLayer, SCamera &inCamera, - QT3DSVec3 inCameraDirection, NVDataRef<SLight *> inLights, - NVDataRef<QT3DSVec3> inLightDirections, - Qt3DSShadowMap *inShadowMapManager, - NVRenderTexture2D *inDepthTexture, - NVRenderTexture2D *inSSaoTexture, SImage *inLightProbe, - SImage *inLightProbe2, QT3DSF32 inProbeHorizon, - QT3DSF32 inProbeBright, QT3DSF32 inProbe2Window, QT3DSF32 inProbe2Pos, - QT3DSF32 inProbe2Fade, QT3DSF32 inProbeFOV) - : m_Layer(inLayer) - , m_Camera(inCamera) - , m_CameraDirection(inCameraDirection) - , m_Lights(inLights) - , m_LightDirections(inLightDirections) - , m_ShadowMapManager(inShadowMapManager) - , m_DepthTexture(inDepthTexture) - , m_SSaoTexture(inSSaoTexture) - , m_LightProbe(inLightProbe) - , m_LightProbe2(inLightProbe2) - , m_ProbeHorizon(inProbeHorizon) - , m_ProbeBright(inProbeBright) - , m_Probe2Window(inProbe2Window) - , m_Probe2Pos(inProbe2Pos) - , m_Probe2Fade(inProbe2Fade) - , m_ProbeFOV(inProbeFOV) - { - } - }; - - class IMaterialShaderGenerator : public NVRefCounted - { - public: - struct SImageVariableNames - { - const char8_t *m_ImageSampler; - const char8_t *m_ImageFragCoords; - }; - - virtual SImageVariableNames GetImageVariableNames(QT3DSU32 inIdx) = 0; - virtual void GenerateImageUVCoordinates(IShaderStageGenerator &inVertexPipeline, QT3DSU32 idx, - QT3DSU32 uvSet, SRenderableImage &image) = 0; - - // inPipelineName needs to be unique else the shader cache will just return shaders from - // different pipelines. - virtual NVRenderShaderProgram *GenerateShader( - const SGraphObject &inMaterial, SShaderDefaultMaterialKey inShaderDescription, - IShaderStageGenerator &inVertexPipeline, TShaderFeatureSet inFeatureSet, - NVDataRef<SLight *> inLights, SRenderableImage *inFirstImage, bool inHasTransparency, - const char8_t *inVertexPipelineName, const char8_t *inCustomMaterialName = "") = 0; - - // Also sets the blend function on the render context. - virtual void - SetMaterialProperties(NVRenderShaderProgram &inProgram, const SGraphObject &inMaterial, - const QT3DSVec2 &inCameraVec, const QT3DSMat44 &inModelViewProjection, - const QT3DSMat33 &inNormalMatrix, const QT3DSMat44 &inGlobalTransform, - SRenderableImage *inFirstImage, QT3DSF32 inOpacity, - SLayerGlobalRenderProperties inRenderProperties) = 0; - }; -} -} - -#endif |