| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- #pragma once
- #include "BsCorePrerequisites.h"
- namespace BansheeEngine
- {
- /** @addtogroup RenderAPI
- * @{
- */
- /** Describes a single GPU program data (e.g. int, float, Vector2) parameter. */
- struct GpuParamDataDesc
- {
- String name;
- UINT32 elementSize; /**< In multiples of 4 bytes. */
- UINT32 arraySize;
- UINT32 arrayElementStride; /**< In multiples of 4 bytes. */
- GpuParamDataType type;
- UINT32 paramBlockSlot;
- UINT32 gpuMemOffset; /**< In multiples of 4 bytes, or index for parameters not in a buffer. */
- UINT32 cpuMemOffset; /**< In multiples of 4 bytes. */
- };
- /** Describes a single GPU program object (e.g. texture, sampler state) parameter. */
- struct GpuParamObjectDesc
- {
- String name;
- GpuParamObjectType type;
- UINT32 slot;
- };
- /** Describes a GPU program parameter block (collection of GPU program data parameters). */
- struct GpuParamBlockDesc
- {
- String name;
- UINT32 slot;
- UINT32 blockSize; /**< In multiples of 4 bytes. */
- bool isShareable;
- };
- /** Contains all parameter information for a GPU program, including data and object parameters, plus parameter blocks. */
- struct GpuParamDesc
- {
- Map<String, GpuParamBlockDesc> paramBlocks;
- Map<String, GpuParamDataDesc> params;
- Map<String, GpuParamObjectDesc> samplers;
- Map<String, GpuParamObjectDesc> textures;
- Map<String, GpuParamObjectDesc> buffers;
- };
- /** @} */
- }
|