You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
Removal of includes to reduce transitive includes in high traffic headers to reduce compile times Highlights * Skeleton and BonePose not leaked out of commonly used animation headers * AudioComponent leaking out less * Brush not leaking Level.h (Brush is included indirectly a lot) * VertexStreamComponent moved to its own file so Components.h can include that instead of VertexFactory (which would leak out all of RHI and others) #preflight 6365dd15c53af2f47f8d8c40 #rb none [CL 23003402 by henrik karlsson in ue5-main branch]
72 lines
1.8 KiB
C++
72 lines
1.8 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#pragma once
|
|
|
|
#include "RHIDefinitions.h"
|
|
|
|
class FVertexBuffer;
|
|
|
|
enum class EVertexStreamUsage : uint8
|
|
{
|
|
Default = 0 << 0,
|
|
Instancing = 1 << 0,
|
|
Overridden = 1 << 1,
|
|
ManualFetch = 1 << 2
|
|
};
|
|
|
|
/**
|
|
* A typed data source for a vertex factory which streams data from a vertex buffer.
|
|
*/
|
|
struct FVertexStreamComponent
|
|
{
|
|
/** The vertex buffer to stream data from. If null, no data can be read from this stream. */
|
|
const FVertexBuffer* VertexBuffer = nullptr;
|
|
|
|
/** The offset to the start of the vertex buffer fetch. */
|
|
uint32 StreamOffset = 0;
|
|
|
|
/** The offset of the data, relative to the beginning of each element in the vertex buffer. */
|
|
uint8 Offset = 0;
|
|
|
|
/** The stride of the data. */
|
|
uint8 Stride = 0;
|
|
|
|
/** The type of the data read from this stream. */
|
|
TEnumAsByte<EVertexElementType> Type = VET_None;
|
|
|
|
EVertexStreamUsage VertexStreamUsage = EVertexStreamUsage::Default;
|
|
|
|
/**
|
|
* Initializes the data stream to null.
|
|
*/
|
|
FVertexStreamComponent()
|
|
{}
|
|
|
|
/**
|
|
* Minimal initialization constructor.
|
|
*/
|
|
FVertexStreamComponent(const FVertexBuffer* InVertexBuffer, uint32 InOffset, uint32 InStride, EVertexElementType InType, EVertexStreamUsage Usage = EVertexStreamUsage::Default) :
|
|
VertexBuffer(InVertexBuffer),
|
|
StreamOffset(0),
|
|
Offset((uint8)InOffset),
|
|
Stride((uint8)InStride),
|
|
Type(InType),
|
|
VertexStreamUsage(Usage)
|
|
{
|
|
check(InStride <= 0xFF);
|
|
check(InOffset <= 0xFF);
|
|
}
|
|
|
|
FVertexStreamComponent(const FVertexBuffer* InVertexBuffer, uint32 InStreamOffset, uint32 InOffset, uint32 InStride, EVertexElementType InType, EVertexStreamUsage Usage = EVertexStreamUsage::Default) :
|
|
VertexBuffer(InVertexBuffer),
|
|
StreamOffset(InStreamOffset),
|
|
Offset((uint8)InOffset),
|
|
Stride((uint8)InStride),
|
|
Type(InType),
|
|
VertexStreamUsage(Usage)
|
|
{
|
|
check(InStride <= 0xFF);
|
|
check(InOffset <= 0xFF);
|
|
}
|
|
};
|