Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qssgrenderdefaultmaterialshadergenerator.cpp File Reference

(0b5c796582e9fcc108dac6c2fda7ea17aa854b8e)

#include <QtQuick3DUtils/private/qssgutils_p.h>
#include <QtQuick3DUtils/private/qssgassert_p.h>
#include <QtQuick3DRuntimeRender/private/qssgrenderdefaultmaterialshadergenerator_p.h>
#include "qssgrendercontextcore.h"
#include <QtQuick3DRuntimeRender/private/qssgrendershadercodegenerator_p.h>
#include <QtQuick3DRuntimeRender/private/qssgrenderimage_p.h>
#include <QtQuick3DRuntimeRender/private/qssgrenderlight_p.h>
#include <QtQuick3DRuntimeRender/private/qssgrendercamera_p.h>
#include <QtQuick3DRuntimeRender/private/qssgrendershadowmap_p.h>
#include <QtQuick3DRuntimeRender/private/qssgrendercustommaterial_p.h>
#include <QtQuick3DRuntimeRender/private/qssgrendershaderlibrarymanager_p.h>
#include <QtQuick3DRuntimeRender/private/qssgrendershaderkeys_p.h>
#include <QtQuick3DRuntimeRender/private/qssgshadermaterialadapter_p.h>
#include <QtQuick3DRuntimeRender/private/qssgvertexpipelineimpl_p.h>
#include <QtQuick3DRuntimeRender/private/qssglayerrenderdata_p.h>
#include <QtCore/QByteArray>
#include <cstdio>
#include <limits>
Include dependency graph for qssgrenderdefaultmaterialshadergenerator.cpp:

Go to the source code of this file.

Classes

struct  QT_BEGIN_NAMESPACE::ImageStrings< Type >
struct  QT_BEGIN_NAMESPACE::ImageStringSet

Namespaces

namespace  QT_BEGIN_NAMESPACE
 Combined button and popup list for selecting options.

Macros

#define DefineImageStrings(V)
#define DefineImageStringTableEntry(V)
#define MAX_MORPH_TARGET   8

Typedefs

using QT_BEGIN_NAMESPACE::Type = QSSGRenderableImage::Type

Functions

 QT_BEGIN_NAMESPACE::DefineImageStrings (Unknown)
 QT_BEGIN_NAMESPACE::DefineImageStrings (Diffuse)
 QT_BEGIN_NAMESPACE::DefineImageStrings (Opacity)
 QT_BEGIN_NAMESPACE::DefineImageStrings (Specular)
 QT_BEGIN_NAMESPACE::DefineImageStrings (Emissive)
 QT_BEGIN_NAMESPACE::DefineImageStrings (Bump)
 QT_BEGIN_NAMESPACE::DefineImageStrings (SpecularAmountMap)
 QT_BEGIN_NAMESPACE::DefineImageStrings (Normal)
 QT_BEGIN_NAMESPACE::DefineImageStrings (Translucency)
 QT_BEGIN_NAMESPACE::DefineImageStrings (Roughness)
 QT_BEGIN_NAMESPACE::DefineImageStrings (BaseColor)
 QT_BEGIN_NAMESPACE::DefineImageStrings (Metalness)
 QT_BEGIN_NAMESPACE::DefineImageStrings (Occlusion)
 QT_BEGIN_NAMESPACE::DefineImageStrings (Height)
 QT_BEGIN_NAMESPACE::DefineImageStrings (Clearcoat)
 QT_BEGIN_NAMESPACE::DefineImageStrings (ClearcoatRoughness)
 QT_BEGIN_NAMESPACE::DefineImageStrings (ClearcoatNormal)
 QT_BEGIN_NAMESPACE::DefineImageStrings (Transmission)
 QT_BEGIN_NAMESPACE::DefineImageStrings (Thickness)
void QT_BEGIN_NAMESPACE::textureCoordVaryingName (char(&outString)[TEXCOORD_VAR_LEN], quint8 uvSet)
void QT_BEGIN_NAMESPACE::textureCoordVariableName (char(&outString)[TEXCOORD_VAR_LEN], quint8 uvSet)
static void addLocalVariable (QSSGStageGeneratorBase &inGenerator, const QByteArray &inName, const QByteArray &inType)
static QByteArray uvTransform (const QByteArray &imageRotations, const QByteArray &imageOffsets)
static void sanityCheckImageForSampler (const QSSGRenderableImage &image, const char *samplerName)
static void generateImageUVCoordinates (QSSGMaterialVertexPipeline &vertexShader, QSSGStageGeneratorBase &fragmentShader, const QSSGShaderDefaultMaterialKey &key, QSSGRenderableImage &image, bool forceFragmentShader=false, quint32 uvSet=0, bool reuseImageCoords=false)
static void generateImageUVSampler (QSSGMaterialVertexPipeline &vertexGenerator, QSSGStageGeneratorBase &fragmentShader, const QSSGShaderDefaultMaterialKey &key, const QSSGRenderableImage &image, char(&outString)[TEXCOORD_VAR_LEN], quint8 uvSet=0)
static QSSGShaderMaterialAdaptergetMaterialAdapter (const QSSGRenderGraphObject &inMaterial)
static void generateFragmentDefines (QSSGStageGeneratorBase &fragmentShader, const QSSGShaderDefaultMaterialKey &inKey, const QSSGShaderDefaultMaterialKeyProperties &keyProps, QSSGShaderMaterialAdapter *materialAdapter, QSSGShaderLibraryManager &shaderLibraryManager)
static void generateFragmentShader (QSSGStageGeneratorBase &fragmentShader, QSSGMaterialVertexPipeline &vertexShader, const QSSGShaderDefaultMaterialKey &inKey, const QSSGShaderDefaultMaterialKeyProperties &keyProps, const QSSGShaderFeatures &featureSet, const QSSGRenderGraphObject &inMaterial, QSSGRenderableImage *firstImage, QSSGShaderLibraryManager &shaderLibraryManager)
static quint32 softShadowQualityToInt (QSSGRenderLight::SoftShadowQuality quality)

Variables

constexpr ImageStringSet QT_BEGIN_NAMESPACE::imageStringTable []
const int QT_BEGIN_NAMESPACE::TEXCOORD_VAR_LEN = 16
static constexpr QByteArrayView qssg_shader_arg_names []

Macro Definition Documentation

◆ DefineImageStrings

#define DefineImageStrings ( V)
Value:
template<> struct ImageStrings<Type::V> \
{\
static constexpr const char* sampler() { return "qt_"#V"Map_sampler"; }\
static constexpr const char* offsets() { return "qt_"#V"Map_offsets"; }\
static constexpr const char* rotations() { return "qt_"#V"Map_rotations"; }\
static constexpr const char* fragCoords1() { return "qt_"#V"Map_uv_coords1"; }\
static constexpr const char* fragCoords2() { return "qt_"#V"Map_uv_coords2"; }\
static constexpr const char* samplerSize() { return "qt_"#V"Map_size"; }\
}
GLuint sampler
EGLImageKHR int EGLint EGLint * offsets
Definition moc.h:33

Definition at line 34 of file qssgrenderdefaultmaterialshadergenerator.cpp.

◆ DefineImageStringTableEntry

#define DefineImageStringTableEntry ( V)
Value:
{ ImageStrings<Type::V>::sampler(), ImageStrings<Type::V>::fragCoords1(), ImageStrings<Type::V>::fragCoords2(), \
ImageStrings<Type::V>::offsets(), ImageStrings<Type::V>::rotations(), ImageStrings<Type::V>::samplerSize() }

Definition at line 74 of file qssgrenderdefaultmaterialshadergenerator.cpp.

◆ MAX_MORPH_TARGET

#define MAX_MORPH_TARGET   8

Function Documentation

◆ addLocalVariable()

void addLocalVariable ( QSSGStageGeneratorBase & inGenerator,
const QByteArray & inName,
const QByteArray & inType )
static

◆ generateFragmentDefines()

void generateFragmentDefines ( QSSGStageGeneratorBase & fragmentShader,
const QSSGShaderDefaultMaterialKey & inKey,
const QSSGShaderDefaultMaterialKeyProperties & keyProps,
QSSGShaderMaterialAdapter * materialAdapter,
QSSGShaderLibraryManager & shaderLibraryManager )
static

◆ generateFragmentShader()

◆ generateImageUVCoordinates()

void generateImageUVCoordinates ( QSSGMaterialVertexPipeline & vertexShader,
QSSGStageGeneratorBase & fragmentShader,
const QSSGShaderDefaultMaterialKey & key,
QSSGRenderableImage & image,
bool forceFragmentShader = false,
quint32 uvSet = 0,
bool reuseImageCoords = false )
static

◆ generateImageUVSampler()

void generateImageUVSampler ( QSSGMaterialVertexPipeline & vertexGenerator,
QSSGStageGeneratorBase & fragmentShader,
const QSSGShaderDefaultMaterialKey & key,
const QSSGRenderableImage & image,
char(&) outString[TEXCOORD_VAR_LEN],
quint8 uvSet = 0 )
static

◆ getMaterialAdapter()

QSSGShaderMaterialAdapter * getMaterialAdapter ( const QSSGRenderGraphObject & inMaterial)
inlinestatic

◆ sanityCheckImageForSampler()

void sanityCheckImageForSampler ( const QSSGRenderableImage & image,
const char * samplerName )
static

◆ softShadowQualityToInt()

quint32 softShadowQualityToInt ( QSSGRenderLight::SoftShadowQuality quality)
static

◆ uvTransform()

QByteArray uvTransform ( const QByteArray & imageRotations,
const QByteArray & imageOffsets )
static

Variable Documentation

◆ qssg_shader_arg_names

constexpr QByteArrayView qssg_shader_arg_names
staticconstexpr