diff options
Diffstat (limited to 'src/Runtime/ogl-runtime/src/render/backends/gl/Qt3DSRenderBackendGLBase.h')
m--------- | src/Runtime/ogl-runtime | 0 | ||||
-rw-r--r-- | src/Runtime/ogl-runtime/src/render/backends/gl/Qt3DSRenderBackendGLBase.h | 531 |
2 files changed, 0 insertions, 531 deletions
diff --git a/src/Runtime/ogl-runtime b/src/Runtime/ogl-runtime new file mode 160000 +Subproject 427fddb50d43aa21a90fc7356ee3cdd8a908df5 diff --git a/src/Runtime/ogl-runtime/src/render/backends/gl/Qt3DSRenderBackendGLBase.h b/src/Runtime/ogl-runtime/src/render/backends/gl/Qt3DSRenderBackendGLBase.h deleted file mode 100644 index 28e4dbb1..00000000 --- a/src/Runtime/ogl-runtime/src/render/backends/gl/Qt3DSRenderBackendGLBase.h +++ /dev/null @@ -1,531 +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_BACKEND_GL_BASE_H -#define QT3DS_RENDER_BACKEND_GL_BASE_H - -/// @file Qt3DSRenderBackendGLBase.h -/// NVRender OpenGL Core backend definition. - -#include "foundation/Qt3DSContainers.h" -#include "foundation/StringTable.h" -#include "render/backends/Qt3DSRenderBackend.h" -#include "render/backends/gl/Qt3DSOpenGLUtil.h" -#include <EASTL/string.h> - -#include <QtGui/QSurfaceFormat> -#include <QtGui/QOpenGLFunctions> -#include <QtOpenGLExtensions/QtOpenGLExtensions> - -#define NVRENDER_BACKEND_UNUSED(arg) (void)arg; - -// Enable this to log opengl errors instead of an assert -//#define RENDER_BACKEND_LOG_GL_ERRORS - -namespace qt3ds { -namespace render { - - ///< forward declaration - class NVRenderBackendRasterizerStateGL; - class NVRenderBackendDepthStencilStateGL; - - using namespace foundation; - - typedef eastl::basic_string<char8_t, ForwardingAllocator> TContextStr; - - class NVRenderBackendGLBase : public NVRenderBackend - { - public: - /// constructor - NVRenderBackendGLBase(NVFoundationBase &fnd, - qt3ds::foundation::IStringTable &stringTable, - const QSurfaceFormat &format); - /// destructor - virtual ~NVRenderBackendGLBase(); - - public: - /// API Interface - NVRenderContextType GetRenderContextType() const override; - bool isESCompatible() const; - - const char *GetShadingLanguageVersion() override; - /// get implementation depended values - QT3DSU32 GetMaxCombinedTextureUnits() override; - bool GetRenderBackendCap(NVRenderBackendCaps::Enum inCap) const override; - QT3DSU32 GetDepthBits() const override; - QT3DSU32 GetStencilBits() const override; - void GetRenderBackendValue(NVRenderBackendQuery::Enum inQuery, QT3DSI32 *params) const override; - - /// state get/set functions - void SetRenderState(bool bEnable, const NVRenderState::Enum value) override; - bool GetRenderState(const NVRenderState::Enum value) override; - virtual NVRenderBackendDepthStencilStateObject - CreateDepthStencilState(bool enableDepth, bool depthMask, NVRenderBoolOp::Enum depthFunc, - bool enableStencil, - NVRenderStencilFunctionArgument &stencilFuncFront, - NVRenderStencilFunctionArgument &stencilFuncBack, - NVRenderStencilOperationArgument &depthStencilOpFront, - NVRenderStencilOperationArgument &depthStencilOpBack) override; - virtual void - ReleaseDepthStencilState(NVRenderBackendDepthStencilStateObject inDepthStencilState) override; - virtual NVRenderBackendRasterizerStateObject - CreateRasterizerState(QT3DSF32 depthBias, QT3DSF32 depthScale, NVRenderFaces::Enum cullFace) override; - void ReleaseRasterizerState(NVRenderBackendRasterizerStateObject rasterizerState) override; - virtual void - SetDepthStencilState(NVRenderBackendDepthStencilStateObject inDepthStencilState) override; - void SetRasterizerState(NVRenderBackendRasterizerStateObject rasterizerState) override; - NVRenderBoolOp::Enum GetDepthFunc() override; - void SetDepthFunc(const NVRenderBoolOp::Enum func) override; - bool GetDepthWrite() override; - void SetDepthWrite(bool bEnable) override; - void SetColorWrites(bool bRed, bool bGreen, bool bBlue, bool bAlpha) override; - void SetMultisample(bool bEnable) override; - void GetBlendFunc(NVRenderBlendFunctionArgument *pBlendFuncArg) override; - void SetBlendFunc(const NVRenderBlendFunctionArgument &blendFuncArg) override; - void SetBlendEquation(const NVRenderBlendEquationArgument &pBlendEquArg) override; - void SetBlendBarrier(void) override; - void GetScissorRect(NVRenderRect *pRect) override; - void SetScissorRect(const NVRenderRect &rect) override; - void GetViewportRect(NVRenderRect *pRect) override; - void SetViewportRect(const NVRenderRect &rect) override; - - void SetClearColor(const QT3DSVec4 *pClearColor) override; - void Clear(NVRenderClearFlags flags) override; - - /// resource handling - NVRenderBackendBufferObject CreateBuffer(size_t size, - NVRenderBufferBindFlags bindFlags, - NVRenderBufferUsageType::Enum usage, - const void *hostPtr = NULL) override; - void BindBuffer(NVRenderBackendBufferObject bo, NVRenderBufferBindFlags bindFlags) override; - void ReleaseBuffer(NVRenderBackendBufferObject bo) override; - void UpdateBuffer(NVRenderBackendBufferObject bo, NVRenderBufferBindFlags bindFlags, - size_t size, NVRenderBufferUsageType::Enum usage, - const void *data) override; - void UpdateBufferRange(NVRenderBackendBufferObject bo, - NVRenderBufferBindFlags bindFlags, size_t offset, - size_t size, const void *data) override; - void *MapBuffer(NVRenderBackendBufferObject bo, NVRenderBufferBindFlags bindFlags, - size_t offset, size_t length, - NVRenderBufferAccessFlags accessFlags) override; - bool UnmapBuffer(NVRenderBackendBufferObject bo, NVRenderBufferBindFlags bindFlags) override; - void SetMemoryBarrier(NVRenderBufferBarrierFlags barriers) override; - - NVRenderBackendQueryObject CreateQuery() override; - void ReleaseQuery(NVRenderBackendQueryObject qo) override; - void BeginQuery(NVRenderBackendQueryObject qo, NVRenderQueryType::Enum type) override; - void EndQuery(NVRenderBackendQueryObject qo, NVRenderQueryType::Enum type) override; - void GetQueryResult(NVRenderBackendQueryObject qo, - NVRenderQueryResultType::Enum resultType, QT3DSU32 *params) override; - void GetQueryResult(NVRenderBackendQueryObject qo, - NVRenderQueryResultType::Enum resultType, QT3DSU64 *params) override; - void SetQueryTimer(NVRenderBackendQueryObject qo) override; - - NVRenderBackendSyncObject CreateSync(NVRenderSyncType::Enum tpye, - NVRenderSyncFlags syncFlags) override; - void ReleaseSync(NVRenderBackendSyncObject so) override; - void WaitSync(NVRenderBackendSyncObject so, NVRenderCommandFlushFlags syncFlags, - QT3DSU64 timeout) override; - - NVRenderBackendRenderTargetObject CreateRenderTarget() override; - void ReleaseRenderTarget(NVRenderBackendRenderTargetObject rto) override; - void RenderTargetAttach(NVRenderBackendRenderTargetObject rto, - NVRenderFrameBufferAttachments::Enum attachment, - NVRenderBackendRenderbufferObject rbo) override; - void RenderTargetAttach( - NVRenderBackendRenderTargetObject rto, NVRenderFrameBufferAttachments::Enum attachment, - NVRenderBackendTextureObject to, - NVRenderTextureTargetType::Enum target = NVRenderTextureTargetType::Texture2D) override; - void RenderTargetAttach(NVRenderBackendRenderTargetObject rto, - NVRenderFrameBufferAttachments::Enum attachment, - NVRenderBackendTextureObject to, QT3DSI32 level, QT3DSI32 layer) override; - void SetRenderTarget(NVRenderBackendRenderTargetObject rto) override; - bool RenderTargetIsValid(NVRenderBackendRenderTargetObject rto) override; - - virtual NVRenderBackendRenderbufferObject - CreateRenderbuffer(NVRenderRenderBufferFormats::Enum storageFormat, size_t width, - size_t height) override; - void ReleaseRenderbuffer(NVRenderBackendRenderbufferObject rbo) override; - bool ResizeRenderbuffer(NVRenderBackendRenderbufferObject rbo, - NVRenderRenderBufferFormats::Enum storageFormat, - size_t width, size_t height) override; - - NVRenderBackendTextureObject CreateTexture() override; - void BindTexture(NVRenderBackendTextureObject to, - NVRenderTextureTargetType::Enum target, QT3DSU32 unit) override; - void BindImageTexture(NVRenderBackendTextureObject to, QT3DSU32 unit, QT3DSI32 level, - bool layered, QT3DSI32 layer, - NVRenderImageAccessType::Enum access, - NVRenderTextureFormats::Enum format) override; - void ReleaseTexture(NVRenderBackendTextureObject to) override; - void SetTextureData2D(NVRenderBackendTextureObject to, - NVRenderTextureTargetType::Enum target, QT3DSU32 level, - NVRenderTextureFormats::Enum internalFormat, size_t width, - size_t height, QT3DSI32 border, - NVRenderTextureFormats::Enum format, - const void *hostPtr = NULL) override; - void SetTextureDataCubeFace(NVRenderBackendTextureObject to, - NVRenderTextureTargetType::Enum target, QT3DSU32 level, - NVRenderTextureFormats::Enum internalFormat, - size_t width, size_t height, QT3DSI32 border, - NVRenderTextureFormats::Enum format, - const void *hostPtr = NULL) override; - void CreateTextureStorage2D(NVRenderBackendTextureObject to, - NVRenderTextureTargetType::Enum target, QT3DSU32 levels, - NVRenderTextureFormats::Enum internalFormat, - size_t width, size_t height) override; - void SetTextureSubData2D(NVRenderBackendTextureObject to, - NVRenderTextureTargetType::Enum target, QT3DSU32 level, - QT3DSI32 xOffset, QT3DSI32 yOffset, size_t width, size_t height, - NVRenderTextureFormats::Enum format, - const void *hostPtr = NULL) override; - void SetCompressedTextureData2D(NVRenderBackendTextureObject to, - NVRenderTextureTargetType::Enum target, QT3DSU32 level, - NVRenderTextureFormats::Enum internalFormat, - size_t width, size_t height, QT3DSI32 border, - size_t imageSize, const void *hostPtr = NULL) override; - void SetCompressedTextureDataCubeFace(NVRenderBackendTextureObject to, - NVRenderTextureTargetType::Enum target, - QT3DSU32 level, - NVRenderTextureFormats::Enum internalFormat, - size_t width, size_t height, QT3DSI32 border, - size_t imageSize, const void *hostPtr = NULL) override; - void SetCompressedTextureSubData2D(NVRenderBackendTextureObject to, - NVRenderTextureTargetType::Enum target, - QT3DSU32 level, QT3DSI32 xOffset, QT3DSI32 yOffset, - size_t width, size_t height, - NVRenderTextureFormats::Enum format, - size_t imageSize, const void *hostPtr = NULL) override; - void SetMultisampledTextureData2D(NVRenderBackendTextureObject to, - NVRenderTextureTargetType::Enum target, - size_t samples, - NVRenderTextureFormats::Enum internalFormat, - size_t width, size_t height, - bool fixedsamplelocations) override = 0; - - void SetTextureData3D(NVRenderBackendTextureObject to, - NVRenderTextureTargetType::Enum target, QT3DSU32 level, - NVRenderTextureFormats::Enum internalFormat, size_t width, - size_t height, size_t depth, QT3DSI32 border, - NVRenderTextureFormats::Enum format, - const void *hostPtr = NULL) override; - - void GenerateMipMaps(NVRenderBackendTextureObject to, - NVRenderTextureTargetType::Enum target, - NVRenderHint::Enum genType) override; - - virtual NVRenderTextureSwizzleMode::Enum - GetTextureSwizzleMode(const NVRenderTextureFormats::Enum inFormat) const override; - - NVRenderBackendSamplerObject CreateSampler( - NVRenderTextureMinifyingOp::Enum minFilter = NVRenderTextureMinifyingOp::Linear, - NVRenderTextureMagnifyingOp::Enum magFilter = NVRenderTextureMagnifyingOp::Linear, - NVRenderTextureCoordOp::Enum wrapS = NVRenderTextureCoordOp::ClampToEdge, - NVRenderTextureCoordOp::Enum wrapT = NVRenderTextureCoordOp::ClampToEdge, - NVRenderTextureCoordOp::Enum wrapR = NVRenderTextureCoordOp::ClampToEdge, - QT3DSI32 minLod = -1000, QT3DSI32 maxLod = 1000, QT3DSF32 lodBias = 0.0, - NVRenderTextureCompareMode::Enum compareMode = NVRenderTextureCompareMode::NoCompare, - NVRenderTextureCompareOp::Enum compareFunc = NVRenderTextureCompareOp::LessThanOrEqual, - QT3DSF32 anisotropy = 1.0, QT3DSF32 *borderColor = NULL) override; - - void UpdateSampler( - NVRenderBackendSamplerObject so, NVRenderTextureTargetType::Enum target, - NVRenderTextureMinifyingOp::Enum minFilter = NVRenderTextureMinifyingOp::Linear, - NVRenderTextureMagnifyingOp::Enum magFilter = NVRenderTextureMagnifyingOp::Linear, - NVRenderTextureCoordOp::Enum wrapS = NVRenderTextureCoordOp::ClampToEdge, - NVRenderTextureCoordOp::Enum wrapT = NVRenderTextureCoordOp::ClampToEdge, - NVRenderTextureCoordOp::Enum wrapR = NVRenderTextureCoordOp::ClampToEdge, - QT3DSF32 minLod = -1000.0, QT3DSF32 maxLod = 1000.0, QT3DSF32 lodBias = 0.0, - NVRenderTextureCompareMode::Enum compareMode = NVRenderTextureCompareMode::NoCompare, - NVRenderTextureCompareOp::Enum compareFunc = NVRenderTextureCompareOp::LessThanOrEqual, - QT3DSF32 anisotropy = 1.0, QT3DSF32 *borderColor = NULL) override; - - void UpdateTextureObject(NVRenderBackendTextureObject to, - NVRenderTextureTargetType::Enum target, QT3DSI32 baseLevel, - QT3DSI32 maxLevel) override; - - void UpdateTextureSwizzle(NVRenderBackendTextureObject to, - NVRenderTextureTargetType::Enum target, - NVRenderTextureSwizzleMode::Enum swizzleMode) override; - - void ReleaseSampler(NVRenderBackendSamplerObject so) override; - - virtual NVRenderBackendAttribLayoutObject - CreateAttribLayout(NVConstDataRef<NVRenderVertexBufferEntry> attribs) override; - void ReleaseAttribLayout(NVRenderBackendAttribLayoutObject ao) override; - - virtual NVRenderBackendInputAssemblerObject - CreateInputAssembler(NVRenderBackendAttribLayoutObject attribLayout, - NVConstDataRef<NVRenderBackendBufferObject> buffers, - const NVRenderBackendBufferObject indexBuffer, - NVConstDataRef<QT3DSU32> strides, NVConstDataRef<QT3DSU32> offsets, - QT3DSU32 patchVertexCount) override; - void ReleaseInputAssembler(NVRenderBackendInputAssemblerObject iao) override; - - bool SetInputAssembler(NVRenderBackendInputAssemblerObject iao, - NVRenderBackendShaderProgramObject po) override = 0; - void SetPatchVertexCount(NVRenderBackendInputAssemblerObject, QT3DSU32) override - { - QT3DS_ASSERT(false); - } - - // shader - virtual NVRenderBackendVertexShaderObject - CreateVertexShader(NVConstDataRef<QT3DSI8> source, eastl::string &errorMessage, bool binary) override; - virtual NVRenderBackendFragmentShaderObject - CreateFragmentShader(NVConstDataRef<QT3DSI8> source, eastl::string &errorMessage, bool binary) override; - virtual NVRenderBackendTessControlShaderObject - CreateTessControlShader(NVConstDataRef<QT3DSI8> source, eastl::string &errorMessage, - bool binary) override; - virtual NVRenderBackendTessEvaluationShaderObject - CreateTessEvaluationShader(NVConstDataRef<QT3DSI8> source, eastl::string &errorMessage, - bool binary) override; - virtual NVRenderBackendGeometryShaderObject - CreateGeometryShader(NVConstDataRef<QT3DSI8> source, eastl::string &errorMessage, bool binary) override; - virtual NVRenderBackendComputeShaderObject - CreateComputeShader(NVConstDataRef<QT3DSI8> source, eastl::string &errorMessage, bool binary) override; - void ReleaseVertexShader(NVRenderBackendVertexShaderObject vso) override; - void ReleaseFragmentShader(NVRenderBackendFragmentShaderObject fso) override; - void ReleaseTessControlShader(NVRenderBackendTessControlShaderObject tcso) override; - void ReleaseTessEvaluationShader(NVRenderBackendTessEvaluationShaderObject teso) override; - void ReleaseGeometryShader(NVRenderBackendGeometryShaderObject gso) override; - void ReleaseComputeShader(NVRenderBackendComputeShaderObject cso) override; - void AttachShader(NVRenderBackendShaderProgramObject po, - NVRenderBackendVertexShaderObject vso) override; - void AttachShader(NVRenderBackendShaderProgramObject po, - NVRenderBackendFragmentShaderObject fso) override; - void AttachShader(NVRenderBackendShaderProgramObject po, - NVRenderBackendTessControlShaderObject tcso) override; - void AttachShader(NVRenderBackendShaderProgramObject po, - NVRenderBackendTessEvaluationShaderObject teso) override; - void AttachShader(NVRenderBackendShaderProgramObject po, - NVRenderBackendGeometryShaderObject gso) override; - void AttachShader(NVRenderBackendShaderProgramObject po, - NVRenderBackendComputeShaderObject cso) override; - void DetachShader(NVRenderBackendShaderProgramObject po, - NVRenderBackendVertexShaderObject vso) override; - void DetachShader(NVRenderBackendShaderProgramObject po, - NVRenderBackendFragmentShaderObject fso) override; - void DetachShader(NVRenderBackendShaderProgramObject po, - NVRenderBackendTessControlShaderObject tcso) override; - void DetachShader(NVRenderBackendShaderProgramObject po, - NVRenderBackendTessEvaluationShaderObject teso) override; - void DetachShader(NVRenderBackendShaderProgramObject po, - NVRenderBackendGeometryShaderObject gso) override; - void DetachShader(NVRenderBackendShaderProgramObject po, - NVRenderBackendComputeShaderObject cso) override; - NVRenderBackendShaderProgramObject CreateShaderProgram(bool isSeparable) override; - void ReleaseShaderProgram(NVRenderBackendShaderProgramObject po) override; - bool LinkProgram(NVRenderBackendShaderProgramObject po, - eastl::string &errorMessage) override; - void SetActiveProgram(NVRenderBackendShaderProgramObject po) override; - void DispatchCompute(NVRenderBackendShaderProgramObject po, QT3DSU32 numGroupsX, - QT3DSU32 numGroupsY, QT3DSU32 numGroupsZ) override; - NVRenderBackendProgramPipeline CreateProgramPipeline() override; - void ReleaseProgramPipeline(NVRenderBackendProgramPipeline po) override; - void SetActiveProgramPipeline(NVRenderBackendProgramPipeline po) override; - void SetProgramStages(NVRenderBackendProgramPipeline ppo, - NVRenderShaderTypeFlags flags, - NVRenderBackendShaderProgramObject po) override; - - // uniforms - QT3DSI32 GetConstantCount(NVRenderBackendShaderProgramObject po) override; - QT3DSI32 GetConstantInfoByID(NVRenderBackendShaderProgramObject po, QT3DSU32 id, - QT3DSU32 bufSize, QT3DSI32 *numElem, - NVRenderShaderDataTypes::Enum *type, QT3DSI32 *binding, - char *nameBuf) override; - void SetConstantValue(NVRenderBackendShaderProgramObject po, QT3DSU32 id, - NVRenderShaderDataTypes::Enum type, QT3DSI32 count, - const void *value, bool transpose) override; - - // uniform buffers - QT3DSI32 GetConstantBufferCount(NVRenderBackendShaderProgramObject po) override; - QT3DSI32 GetConstantBufferInfoByID(NVRenderBackendShaderProgramObject po, QT3DSU32 id, - QT3DSU32 nameBufSize, QT3DSI32 *paramCount, - QT3DSI32 *bufferSize, QT3DSI32 *length, char *nameBuf) override; - void GetConstantBufferParamIndices(NVRenderBackendShaderProgramObject po, QT3DSU32 id, - QT3DSI32 *indices) override; - void GetConstantBufferParamInfoByIndices(NVRenderBackendShaderProgramObject po, - QT3DSU32 count, QT3DSU32 *indices, QT3DSI32 *type, - QT3DSI32 *size, QT3DSI32 *offset) override; - void ProgramSetConstantBlock(NVRenderBackendShaderProgramObject po, - QT3DSU32 blockIndex, QT3DSU32 binding) override; - void ProgramSetConstantBuffer(QT3DSU32 index, NVRenderBackendBufferObject bo) override; - - // storage buffers - QT3DSI32 GetStorageBufferCount(NVRenderBackendShaderProgramObject po) override; - QT3DSI32 GetStorageBufferInfoByID(NVRenderBackendShaderProgramObject po, QT3DSU32 id, - QT3DSU32 nameBufSize, QT3DSI32 *paramCount, - QT3DSI32 *bufferSize, QT3DSI32 *length, char *nameBuf) override; - void ProgramSetStorageBuffer(QT3DSU32 index, NVRenderBackendBufferObject bo) override; - - // atomic counter buffers - QT3DSI32 GetAtomicCounterBufferCount(NVRenderBackendShaderProgramObject po) override; - QT3DSI32 GetAtomicCounterBufferInfoByID(NVRenderBackendShaderProgramObject po, - QT3DSU32 id, QT3DSU32 nameBufSize, QT3DSI32 *paramCount, - QT3DSI32 *bufferSize, QT3DSI32 *length, - char *nameBuf) override; - void ProgramSetAtomicCounterBuffer(QT3DSU32 index, NVRenderBackendBufferObject bo) override; - - /// draw calls - void Draw(NVRenderDrawMode::Enum drawMode, QT3DSU32 start, QT3DSU32 count) override; - void DrawIndirect(NVRenderDrawMode::Enum drawMode, const void *indirect) override; - void DrawIndexed(NVRenderDrawMode::Enum drawMode, QT3DSU32 count, - NVRenderComponentTypes::Enum type, const void *indices) override; - void DrawIndexedIndirect(NVRenderDrawMode::Enum drawMode, - NVRenderComponentTypes::Enum type, const void *indirect) override; - - // read calls - void ReadPixel(NVRenderBackendRenderTargetObject rto, QT3DSI32 x, QT3DSI32 y, QT3DSI32 width, - QT3DSI32 height, NVRenderReadPixelFormats::Enum inFormat, void *pixels) override; - - // NV path rendering - NVRenderBackendPathObject CreatePathNVObject(size_t range) override; - // Pathing requires gl4 backend. - void SetPathSpecification(NVRenderBackendPathObject, NVConstDataRef<QT3DSU8>, - NVConstDataRef<QT3DSF32>) override - { - } - - ///< Bounds of the fill and stroke - NVBounds3 GetPathObjectBoundingBox(NVRenderBackendPathObject /*inPathObject*/) override - { - return NVBounds3(); - } - NVBounds3 GetPathObjectFillBox(NVRenderBackendPathObject /*inPathObject*/) override - { - return NVBounds3(); - } - NVBounds3 GetPathObjectStrokeBox(NVRenderBackendPathObject /*inPathObject*/) override - { - return NVBounds3(); - } - - /** - * Defaults to 0 if unset. - */ - void SetStrokeWidth(NVRenderBackendPathObject /*inPathObject*/, QT3DSF32) override {} - void SetPathProjectionMatrix(const QT3DSMat44 /*inPathProjection*/) override {} - void SetPathModelViewMatrix(const QT3DSMat44 /*inPathModelview*/) override {} - void SetPathStencilDepthOffset(QT3DSF32 /*inSlope*/, QT3DSF32 /*inBias*/) override {} - void SetPathCoverDepthFunc(NVRenderBoolOp::Enum /*inDepthFunction*/) override {} - void StencilStrokePath(NVRenderBackendPathObject /*inPathObject*/) override {} - void StencilFillPath(NVRenderBackendPathObject /*inPathObject*/) override {} - void ReleasePathNVObject(NVRenderBackendPathObject po, size_t range) override; - - void LoadPathGlyphs(NVRenderBackendPathObject, NVRenderPathFontTarget::Enum, - const void *, NVRenderPathFontStyleFlags, size_t, - NVRenderPathFormatType::Enum, const void *, - NVRenderPathMissingGlyphs::Enum, NVRenderBackendPathObject, - QT3DSF32) override; - virtual NVRenderPathReturnValues::Enum - LoadPathGlyphsIndexed(NVRenderBackendPathObject po, NVRenderPathFontTarget::Enum fontTarget, - const void *fontName, NVRenderPathFontStyleFlags fontStyle, - QT3DSU32 firstGlyphIndex, size_t numGlyphs, - NVRenderBackendPathObject pathParameterTemplate, QT3DSF32 emScale) override; - virtual NVRenderBackendPathObject - LoadPathGlyphsIndexedRange(NVRenderPathFontTarget::Enum, const void *, - NVRenderPathFontStyleFlags, - NVRenderBackend::NVRenderBackendPathObject, QT3DSF32, QT3DSU32 *) override; - void LoadPathGlyphRange(NVRenderBackendPathObject, NVRenderPathFontTarget::Enum, - const void *, NVRenderPathFontStyleFlags, QT3DSU32, size_t, - NVRenderPathMissingGlyphs::Enum, NVRenderBackendPathObject, - QT3DSF32) override; - void GetPathMetrics(NVRenderBackendPathObject, size_t, - NVRenderPathGlyphFontMetricFlags, NVRenderPathFormatType::Enum, - const void *, size_t, QT3DSF32 *) override; - void GetPathMetricsRange(NVRenderBackendPathObject, size_t, - NVRenderPathGlyphFontMetricFlags, size_t, QT3DSF32 *) override; - void GetPathSpacing(NVRenderBackendPathObject, size_t, NVRenderPathListMode::Enum, - NVRenderPathFormatType::Enum, const void *, QT3DSF32, QT3DSF32, - NVRenderPathTransformType::Enum, QT3DSF32 *) override; - - void StencilFillPathInstanced(NVRenderBackendPathObject, size_t, - NVRenderPathFormatType::Enum, const void *, - NVRenderPathFillMode::Enum, QT3DSU32, - NVRenderPathTransformType::Enum, const QT3DSF32 *) override; - void StencilStrokePathInstancedN(NVRenderBackendPathObject, size_t, - NVRenderPathFormatType::Enum, const void *, QT3DSI32, - QT3DSU32, NVRenderPathTransformType::Enum, - const QT3DSF32 *) override; - void CoverFillPathInstanced(NVRenderBackendPathObject, size_t, - NVRenderPathFormatType::Enum, const void *, - NVRenderPathCoverMode::Enum, - NVRenderPathTransformType::Enum, const QT3DSF32 *) override; - void CoverStrokePathInstanced(NVRenderBackendPathObject, size_t, - NVRenderPathFormatType::Enum, const void *, - NVRenderPathCoverMode::Enum, - NVRenderPathTransformType::Enum, const QT3DSF32 *) override; - - QSurfaceFormat format() const override - { - return m_format; - } - - protected: - virtual NVFoundationBase &GetFoundation() { return m_Foundation; } - virtual bool compileSource(GLuint shaderID, NVConstDataRef<QT3DSI8> source, - eastl::string &errorMessage, bool binary); - virtual const char *getVersionString(); - virtual const char *getVendorString(); - virtual const char *getRendererString(); - virtual const char *getExtensionString(); - - virtual void setAndInspectHardwareCaps(); - - protected: - volatile QT3DSI32 mRefCount; ///< reference count - NVFoundationBase &m_Foundation; ///< Foundation class for allocations and other base things - NVScopedRefCounted<qt3ds::foundation::IStringTable> - m_StringTable; ///< pointer to a string table - GLConversion m_Conversion; ///< Class for conversion from base type to GL types - QStringList m_extensions; ///< contains the OpenGL extension string - QT3DSI32 m_MaxAttribCount; ///< Maximum attributes which can be used - nvvector<GLenum> m_DrawBuffersArray; ///< Contains the drawbuffer enums - QSurfaceFormat m_format; - - NVRenderBackendRasterizerStateGL - *m_pCurrentRasterizerState; ///< this holds the current rasterizer state - NVRenderBackendDepthStencilStateGL - *m_pCurrentDepthStencilState; ///< this holds the current depth stencil state - -#ifdef RENDER_BACKEND_LOG_GL_ERRORS - void checkGLError(const char *function, const char *file, const unsigned int line) const; -#else - void checkGLError() const; -#endif - QOpenGLFunctions *m_glFunctions; - QOpenGLExtraFunctions *m_glExtraFunctions; - GLfloat m_maxAnisotropy; - }; -} -} - -#endif |