mirror of
https://github.com/Eragon-Brisingr/UShaderLab.git
synced 2026-09-15 23:04:37 +00:00
24 lines
1.3 KiB
C++
24 lines
1.3 KiB
C++
// Copyright FlecsProj. All Rights Reserved.
|
|
//
|
|
// Decal intrinsics (meaningful in the Decal domain; the instance/domain gates usage).
|
|
|
|
#include "ShaderLabIntrinsics.h"
|
|
|
|
#include "Materials/MaterialExpressionDecalColor.h"
|
|
#include "Materials/MaterialExpressionDecalDerivative.h"
|
|
#include "Materials/MaterialExpressionDecalLifetimeOpacity.h"
|
|
|
|
void RegisterDecalIntrinsics(FShaderLabIntrinsicRegistry& Registry)
|
|
{
|
|
using namespace ShaderLabIntrinsic_Private;
|
|
using EFreq = EShaderLabIntrinsicFrequency;
|
|
|
|
// DecalColor's default output pin is RGB (float3).
|
|
AddSimple(Registry, TEXT("DecalColor"), EFreq::PixelOnly, TEXT("float3"), [](UMaterial& M) { return MakeSimple<UMaterialExpressionDecalColor>(M); });
|
|
AddSimple(Registry, TEXT("DecalLifetimeOpacity"), EFreq::PixelOnly, TEXT("float"), [](UMaterial& M) { return MakeSimple<UMaterialExpressionDecalLifetimeOpacity>(M); });
|
|
|
|
// DecalDerivative is multi-output (DDX, DDY) — one intrinsic per output pin.
|
|
AddSimple(Registry, TEXT("DecalDerivativeDDX"), EFreq::PixelOnly, TEXT("float2"), [](UMaterial& M) { return MakeSimple<UMaterialExpressionDecalDerivative>(M); }, 0);
|
|
AddSimple(Registry, TEXT("DecalDerivativeDDY"), EFreq::PixelOnly, TEXT("float2"), [](UMaterial& M) { return MakeSimple<UMaterialExpressionDecalDerivative>(M); }, 1);
|
|
}
|