14#define GX_ENABLE_DX11_SHARED_CONSTANTBUFFER 0
16GX_CORE_NAMESPACE_BEGIN()
64 class GxRenderDeviceNeoInitialInformation :
public GxClassBase
72 GX_RTTI_ABSTRACT_CLASS(GxRenderDeviceNeoInitialInformation,
GxClassBase)
83 GxRenderDeviceNeoInitialInformation(
void) : _neoRenderMode(GX_NEO_RENDER_MODE::NONE){}
94 _neoRenderMode =
static_cast<GX_NEO_RENDER_MODE
>(jsonNode.
getS32(
"_neoRenderMode",
static_cast<s32
>(_neoRenderMode)));
103 GX_NEO_RENDER_MODE _neoRenderMode;
122 , _maxBlockCount(blockCount)
132 constexpr void setSize(u64 size, u32 maxBlockCount)
135 _maxBlockCount = maxBlockCount;
192 u32 _maxSkinningJointCount;
194 b32 _enableWarningShaderCompile;
196#if defined(_WINDOWS) || defined(_PS4) || defined(_PS5) || defined(_XBOX_XS)
197 u32 _useTexcoordCount;
198 GxSize _backBufferResolution;
200 b32 _disableSrgbTextureDevelop;
203#if defined(_PS4) || defined(_PS5) || defined(_NX64)
205 u64 _localMemorySize;
207#if defined(_PS4) || defined(_PS5)
208 b32 _useDefaultPoolForRenderResources;
210 u32 _useMemArenaSize;
211 u32 _useMemArenaElementsCount;
212 u32 _useMemArenaPoolElementSize;
213 f32 _useMemArenaPoolElementsAssign;
215 u32 _useCommandBufferAdditionalResourceBufferSize;
217 u32 _useCommandBufferAdditionalCueHeapSize;
221 GxRenderDeviceNeoInitialInformation _neoInitialInformation;
223 b32 _enableHDRMonitor;
225#if GX_USE_DX11 || GX_USE_DX12
226 b32 _enableContextFlush;
230 b32 _enableRenderDeviceDebugLayer;
234 b32 _isFullScreenReady;
235 u32 _fullScreenScalingMode;
236 b32 _enableWindowResizeCheck;
237 GxSize _fullScreenResolution;
238 b32 _useDefaultPoolForRenderResources;
239 u32 _useDisplayDeviceIndex;
240 u32 _useDxFeatureLevel;
241 b32 _useAltEnterKeyFullScreen;
242 b32 _usePrintScreenKey;
244 GxSize _maxBackBufferResolution;
245 GxSize _defaultBackBufferResolution;
246 u32 _graphicsMemorySize;
247 u32 _firmwareMemorySize;
249 u32 _texturePoolCount;
250 u32 _samplerPoolCount;
251 u32 _nativeCommandBufferSize;
252 u32 _controlBufferSize;
253 u32 _uniformBlockBufferSize;
254 u32 _gpuFrameworkType;
255 u32 _shaderScratchMemorySize;
259 u32 _constBufferSize;
269template<
class STATE,
class DESC>
270struct GxD3D11CreateStateFunction
272 typedef HRESULT (STDMETHODCALLTYPE ID3D11Device::*type)(
const DESC*, STATE**);
278template<class STATE, class DESC, typename GxD3D11CreateStateFunction<STATE,DESC>::type CREATE_STATE>
279class GxD3D11StateTable
287 struct GxD3D11StateEntry
301 GxD3D11StateTable(
void);
304 void terminate(
void);
307 ~GxD3D11StateTable(
void) {};
316 STATE* get(
const DESC& desc);
332template<class STATE, class DESC, typename GxD3D11CreateStateFunction<STATE,DESC>::type CREATE_STATE>
333GxD3D11StateTable<STATE, DESC, CREATE_STATE>::GxD3D11StateTable(
void)
340template<class STATE, class DESC, typename GxD3D11CreateStateFunction<STATE,DESC>::type CREATE_STATE>
341void GxD3D11StateTable<STATE, DESC, CREATE_STATE>::terminate(
void)
343 for(u32 i = 0; i < _table.getCount(); i++)
345 auto* pEntry =
static_cast<GxD3D11StateEntry*
>(_table[i]);
346 DIRECTX_SAFE_RELEASE(pEntry->_pState);
356template<class STATE, class DESC, typename GxD3D11CreateStateFunction<STATE,DESC>::type CREATE_STATE>
357STATE* GxD3D11StateTable<STATE, DESC, CREATE_STATE>::get(
const DESC& desc)
361 for(u32 i = 0; i < _table.getCount(); i++)
363 auto* pEntry =
static_cast<GxD3D11StateEntry*
>(_table[i]);
364 if( (pEntry->_hash == hash) && (GX_MEMCMP(&pEntry->_desc, &desc,
sizeof(desc)) == 0) )
366 return pEntry->_pState;
372 pEntry->_hash = hash;
373 pEntry->_desc = desc;
374 (getGxRenderDevice()->getDevice()->*CREATE_STATE)(&pEntry->_desc, &pEntry->_pState);
376 _table.addBottom(pEntry);
377 return pEntry->_pState;
384using GxD3D11SamplerStateTable = GxD3D11StateTable<ID3D11SamplerState, D3D11_SAMPLER_DESC, &ID3D11Device::CreateSamplerState>;
385using GxD3D11RasterizerStateTable = GxD3D11StateTable<ID3D11RasterizerState, D3D11_RASTERIZER_DESC, &ID3D11Device::CreateRasterizerState>;
386using GxD3D11DepthStencilStateTable = GxD3D11StateTable<ID3D11DepthStencilState, D3D11_DEPTH_STENCIL_DESC, &ID3D11Device::CreateDepthStencilState>;
387using GxD3D11BlendStateTable = GxD3D11StateTable<ID3D11BlendState, D3D11_BLEND_DESC, &ID3D11Device::CreateBlendState>;
392class GxRenderShaderConstantPool :
public GxClassBase
400 GX_RTTI_CLASS(GxRenderShaderConstantPool,
GxClassBase)
411 GxRenderShaderConstantPool(
void );
414 ~GxRenderShaderConstantPool(
void )
override {};
417 b32 initialize( u32 initalItemNum );
420 void terminate(
void);
429 ID3D11Buffer* allocateSharedBuffer(u32 bufferSize);
437 ID3D11Buffer** _ppBuffer;
499 using priorityType = u64;
508#if GX_BITFIELD_LITTLEENDIAN
543#if GX_ENABLE_COMPUTE_SHADER
546#if GX_ENABLE_OCCLUSION_CULLING
547 RESOLVE_OCCLUSION_QUERY,
556#if GX_ENABLE_HTILE_STENCIL_MASK
557 MASK_HTILE_STENCIL_REGION,
560 SET_TILED_CACHE_ACTION,
561 SET_TILED_CACHE_TILE_SIZE,
616 ID3D11InputLayout* _pInputLayout;
624 b32 _isVertexBuffersDirty;
628 ID3D11Buffer* _pIndexBuffer;
632 b32 _isIndexBufferDirty;
634 D3D11_PRIMITIVE_TOPOLOGY _primitiveTopology;
635 D3D11_RASTERIZER_DESC _rasterizerState;
636 b32 _rasterizerStateDirty;
642 ID3D11SamplerState* _pSamplers[
static_cast<u32
>(
RENDER_SHADER::MAX)][D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT];
644 ID3D11Buffer* _pConstantBuffers[
static_cast<u32
>(
RENDER_SHADER::MAX)][D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT];
649 D3D11_BLEND_DESC _blendState;
650 FLOAT _blendFactor[4];
653 b32 _blendStateDirty;
657 D3D11_DEPTH_STENCIL_DESC _depthStencilState;
658 UINT _stencilReference;
659 BOOL _stencilTwoSideEnable;
660 } _depthStencilState;
661 b32 _depthStencilStateDirty;
666 ID3D11DepthStencilView* _pDepthStencilView;
668 b32 _renderTargetsDirty;
672 struct GxCommandInformation;
674 struct GxDrawCommandCommonInformation;
675 struct GxRegisterInformation;
676 struct GxRegisterSet;
679 struct GxRegisterBlockInformation
685 struct GxCommandSetRenderState;
686 struct GxCommandSetDepthTestState;
687 struct GxCommandSetStencilTestState;
688 struct GxCommandSetAlphaTestState;
689 struct GxCommandSetBlendState;
690 struct GxCommandSetViewport;
691 struct GxCommandSetScissorRect;
692 struct GxCommandSetRenderTarget;
693 struct GxCommandSetDepthStencil;
694 struct GxCommandForceDrawState;
695 struct GxCommandForceVertexStreamState;
696 struct GxCommandDraw;
697 struct GxCommandDrawIndexed;
698 struct GxCommandDrawMemory;
699 struct GxCommandDrawIndexedMemory;
700#if GX_ENABLE_COMPUTE_SHADER
701 struct GxCommandDispatch;
703#if GX_ENABLE_OCCLUSION_CULLING
704 struct GxCommandResolveOcclusionQuery;
706 struct GxCommandClear;
707 struct GxCommandClearHDR;
708 struct GxCommandCopyRenderTargetToTexture;
709 struct GxCommandCopyDepthStencilToTexture;
710 struct GxCommandCopyRenderTargetToTextureStretch;
711 struct GxCommandCopyDepthStencilToTextureStretch;
712 struct GxCommandCopyRenderTargetToTextureWithMipmap;
713 struct GxCommandAssembleFinalVrImage;
714 struct GxCommandBeginMarker;
715 struct GxCommandEndMarker;
716 struct GxCommandCallback;
717 struct GxCommandCallbackCopy;
718 struct GxCommandSetPredication;
720 struct GxCommandSetTiledCacheAction;
721 struct GxCommandSetTiledCacheTileSize;
722 struct GxCommandSaveZCullData;
723 struct GxCommandRestoreZCullData;
726#if GX_ENABLE_HTILE_STENCIL_MASK
727 struct GxCommandMaskHtileStencilRegion;
745 GX_RTTI_STRUCT(GxPerformanceCounter)
770 GX_RTTI_STRUCT(GxPerformanceCounterView)
791 class GxScreenshotStateStore
809 b32 _useRenderThread;
810 b32 _enableFrameSkip;
811 b32 _enableCpuRenderSkip;
820 struct GxDisplayConfig
825 b32 _isFilterAntialias;
830 enum class DISPLAY_CONFIG
833 INVALID_WINDOW_RESOLUTION,
834 INVALID_DISPLAY_RESOLUTION,
835 IS_NOT_FULLSCREEN_READY,
848 GX_RTTI_STRUCT(GxDisplayDeviceInformation)
857 GxDisplayDeviceInformation(
void)
859 , _displayReady(false)
860 , _videoMemorySize(0)
861 , _systemMemorySize(0)
862 , _sharedMemorySize(0)
875 u64 _videoMemorySize;
876 u64 _systemMemorySize;
877 u64 _sharedMemorySize;
888 enum class MEMORY_POOL_TYPE
896 TEXTURE_RENDER_TARGET,
903 DIRTY_STATE_RENDER_TARGET = (1 << 0),
904 DIRTY_STATE_POLYGON_STATE = (1 << 1),
905 DIRTY_STATE_POLYGON_OFFSET = (1 << 2),
906 DIRTY_STATE_MULTI_SAMPLE_STATE = (1 << 3),
907 DIRTY_STATE_DEPTH_STENCIL_STATE = (1 << 4),
908 DIRTY_STATE_STENCIL_VALUE_INITIALIZE = (1 << 5),
909 DIRTY_STATE_VIEWPORT_INITIALIZE = (1 << 6),
910 DIRTY_STATE_SCISSOR_INITIALIZE = (1 << 7),
911 DIRTY_STATE_BARRIER = (1 << 8),
942#if GX_USE_DX11 || GX_USE_DX12
944 b32 initializeError(HRESULT hResult, u32 errorPosition);
947 b32 initializeInner(const GxRenderDeviceInitialInformation* pInitialInformation);
949#if GX_USE_DX11 || GX_USE_DX12
950 void createSwapChainDesc(DXGI_SWAP_CHAIN_DESC& desc);
966 GX_FORCE_INLINE
void setGpuProfiling(
b32 on ){ _enableGpuProfiling = on; }
980 constexpr GxVramAllocator* getVramAllocator(
void)
const {
return _pVramAllocator; };
1018#if defined(_WINDOWS)
1020 GX_FORCE_INLINE
void setOutputResolution(
const GxSize& resolution) { _outputResolutionRequest = resolution; }
1023 GX_FORCE_INLINE const GxRect& getSafetyArea(void) const { return _safetyArea; }
1041#if defined(_PS5) || GX_USE_DX12
1042 return _sharedContext[_writeBuffer]._pBackBuffer;
1044 return _pBackBuffer;
1054#if GX_USE_DX11 || GX_USE_DX12
1056 GX_FORCE_INLINE GxNativeDevice getDevice(
void)
const {
return _pDevice; }
1058 constexpr GxNativeSwapChain* getSwapChain(
void)
const {
return _pSwapChain; }
1061 GX_FORCE_INLINE ID3D11DeviceContext* getD3D11ImmediateContext(
void)
const {
return _pD3D11ImmediateContext; }
1063 ID3D11DeviceContext* lockD3D11ImmediateContext(
void);
1065 void unlockD3D11ImmediateContext(
void);
1067 ID3D11DeviceContext* lockD3D11DeferredContext(
void);
1069 void unlockD3D11DeferredContext(
void);
1072 GX_FORCE_INLINE ComPtr<ID3D12GraphicsCommandList> getGraphicsCommandList(
void)
const {
return _pD3D12GraphicsCommandList; }
1074 GX_FORCE_INLINE ComPtr<ID3D12CommandQueue> getCommandQueue(
void)
const {
return _pD3D12CommandQueue; }
1075#if defined(_WINDOWS)
1077 GX_FORCE_INLINE ComPtr<ID3D12Fence> getFence(
void)
const {
return _pD3D12Fence; }
1079 constexpr u64 getFenceValue(u32 bufferIndex)
const {
return _sharedContext[bufferIndex]._fenceValue; }
1082 ComPtr<ID3D12GraphicsCommandList> lockGraphicsCommandListCopy(void);
1084 void unlockGraphicsCommandListCopy(
void);
1086 GX_FORCE_INLINE ComPtr<ID3D12CommandAllocator> getCommandAllocatorCopy(
void)
const {
return _pD3DCommandAllocatorCopy; }
1088#if defined(_XBOX_XS)
1089 GX_FORCE_INLINE ComPtr<ID3D12CommandQueue> getCommandQueueCopy(
void)
const {
return _pD3D12CommandQueue; }
1091 GX_FORCE_INLINE ComPtr<ID3D12CommandQueue> getCommandQueueCopy(
void)
const {
return _pD3D12CommandQueueCopy; }
1094 u32 createShaderResourceView(ID3D12Resource* pResource, const D3D12_SHADER_RESOURCE_VIEW_DESC& desc);
1096 u32 createUnorderedAccessView(ID3D12Resource* pResource,
const D3D12_UNORDERED_ACCESS_VIEW_DESC& desc);
1099 b32 barrierTexture(
GxRenderTexture* pTexture, D3D12_RESOURCE_STATES beforeState, D3D12_RESOURCE_STATES afterState);
1101 GX_FORCE_INLINE
b32 isSupportMeshShader(
void)
const {
return _featureLevelOptions7.MeshShaderTier != D3D12_MESH_SHADER_TIER_NOT_SUPPORTED; }
1104 void outputDeviceRemovedExtendedData(
void)
const;
1108#if defined(_WINDOWS)
1110 void resetContext(
void);
1114 GxNativeSwapChain* createSwapChain(HWND hwnd);
1116 void deleteSwapChain(GxNativeSwapChain* pSwapChain);
1119 GX_FORCE_INLINE b32 getVBlankWait(void) const { return _forceVBlankWait; }
1121 GX_FORCE_INLINE
void setVBlankWait(
b32 vblank) { _forceVBlankWait = vblank; }
1126 IDXGIFactory* getDXGIFactory(
void)
const;
1133 GX_FORCE_INLINE GxNativeRenderContext* getRenderContext(u32 bufferIndex)
const {
return &_sharedContext[bufferIndex]._context; }
1136#if defined(_PS4) || defined(_PS5)
1138 s32 getVideoOutHandle(
void)
const;
1142 b32 isMonitorHDR(
void)
const;
1144 b32 isVideoOutModeHDR(
void)
const;
1147#if defined(_WINDOWS)
1149 void getDisplayConfig(GxDisplayConfig& config);
1152 DISPLAY_CONFIG setDisplayConfig(
const GxDisplayConfig& config);
1154 b32 isSetDisplayConfigReady(
void);
1156 GX_FORCE_INLINE
GxSize getDesktopSize(
void)
const {
return _desktopSize; }
1158 b32 isSupportWindowResolution(
const GxSize& resolution);
1160 b32 isSupportDisplayResolution(
const GxSize& resolution);
1162 GxSize getEnumDisplayResolution(u32 index)
const;
1164 const GxRenderDevice::GxDisplayDeviceInformation& getEnumDisplayDeviceInformation(u32 index)
const;
1166 GX_FORCE_INLINE
b32 isFullScreen(
void)
const {
return _isFullScreen; }
1168 GX_FORCE_INLINE
void setFullScreen(
b32 fullScreen) { _isFullScreen = fullScreen; }
1170 GX_FORCE_INLINE u32 getRefreshRate(
void)
const {
return _refreshRate; }
1173#if defined(_WINDOWS) || defined(_PS4) || defined(_PS5) || defined(_XBOX_XS)
1176 GX_FORCE_INLINE GxCaps getCaps(
void)
const {
return _caps; }
1179 constexpr u32 getUseTexcoordCount(
void)
const {
return _useTexcoordCount; }
1184 GX_FORCE_INLINE GxNativeDevice* getDevice(
void) {
return &_device; }
1186 constexpr GxNativeCommandBuffer* getCommandBuffer(
void) {
return _pCommandBuffer; }
1188 GX_FORCE_INLINE
void setOutputResolution(
const GxSize& size) { _outputResolution = size; }
1192 b32 registerFastClearDepth(f32 depth);
1201#if defined(_PS4) || defined(_PS5)
1203 b32 isDisplayOverFullHD( s32 videoHandle );
1205 GxSize getDisplayResolutionPS4( s32 videoHandle,
const GxSize* pRequestedResolution =
nullptr );
1208 enum class ORBIS_D3D11_VIDEO_OUT_MODE
1218 enum class ORBIS_D3D11_NEO_RENDER_MODE
1228 ORBIS_D3D11_NEO_RENDER_MODE ConvertNeoRenderModeFromGxToOrbisD3D11( GX_NEO_RENDER_MODE neoRenderMode );
1231 constexpr GX_NEO_RENDER_MODE getNeoRenderMode(
void)
const {
return _neoRenderMode; }
1233 void setNeoRenderMode( GX_NEO_RENDER_MODE neoRenderMode);
1237 ORBIS_D3D11_NEO_RENDER_MODE getOrbisD3D11NeoRenderMode(
void)
const;
1239 void setOrbisD3D11NeoRenderMode( ORBIS_D3D11_NEO_RENDER_MODE neoRenderMode);
1242 GX_FORCE_INLINE
b32 isNeoRenderMode4KG(
void)
const {
return ( getNeoRenderMode() == GX_NEO_RENDER_MODE::_4KG ); }
1244 GX_FORCE_INLINE
b32 isNeoRenderMode4KCB(
void)
const {
return ( getNeoRenderMode() == GX_NEO_RENDER_MODE::_4KCB ); }
1246 GX_FORCE_INLINE
b32 isNeoRenderModeNeedToResolve(
void)
const {
return isNeoRenderMode4KG() || isNeoRenderMode4KCB(); }
1248 GX_FORCE_INLINE
b32 isUsePrimitiveIdMap(
void)
const {
return isNeoRenderMode4KG() || isNeoRenderMode4KCB(); }
1250 GX_FORCE_INLINE
b32 isUseDepthStencilNeo(
void)
const {
return isNeoRenderMode4KG() || isNeoRenderMode4KCB(); }
1254 void updateNeoRenderMode(
void);
1257 GX_FORCE_INLINE
void getPropertyNeoRenderMode(
void*
const pValue) { *
static_cast<GX_NEO_RENDER_MODE*
>(pValue) = getNeoRenderMode(); }
1259 GX_FORCE_INLINE
void setPropertyNeoRenderMode(
const void*
const pValue) { setNeoRenderMode(*
static_cast<GX_NEO_RENDER_MODE*
>(
const_cast<void*
>(pValue))); }
1271#if GX_USE_DX11 || defined(_PS5) || defined(_NX64)
1272 static GxNativeShaderStage getShaderStage(
RENDER_SHADER renderShader);
1283 void getPropertyFirmwareMemoryMinimumFreeSize(
void*
const pValue);
1285 void getPropertyGraphicsAllocatorFreeSize(
void*
const pValue);
1299 void initializeSharedContext(u32 bufferCount);
1301 void releaseSharedContext(
void);
1311 template<
typename T> T*
createShader(
const void* pAssembledCode, u32 assembledCodeSize, u32 constantRegisterParameterCount, u32 usageInputSemantics, u32 constantBufferSize)
1313 auto* pShader = GX_NEW T;
1316 GX_ASSERT(
false,
"シェーダ用のメモリの確保に失敗");
1319 else if (!pShader->initialize(pAssembledCode, assembledCodeSize, constantRegisterParameterCount, usageInputSemantics, constantBufferSize))
1328 template<>
GxRenderPixelShader*
createShader(
const void* pAssembledCode, u32 assembledCodeSize, u32 constantRegisterParameterCount, u32 usageInputSemantics, u32 constantBufferSize)
1333 GX_ASSERT(
false,
"シェーダ用のメモリの確保に失敗");
1336 else if (!pShader->initialize(pAssembledCode, assembledCodeSize, constantRegisterParameterCount, usageInputSemantics, constantBufferSize))
1357#if GX_USE_DX11 || GX_USE_DX12
1361#if defined(_PS4) || defined(_PS5)
1365#if GX_USE_DX11 || GX_USE_DX12
1367 GX_FORCE_INLINE
void setContextFlush(
b32 contextFlush) { _enableContextFlush = contextFlush; }
1369 GX_FORCE_INLINE
b32 isEnableContextFlush(
void) {
return _enableContextFlush; }
1371 constexpr u32 getDxFeatureLevel(
void)
const {
return _dxFeatureLevel; }
1373 constexpr f32 getTexcelOffset(
void)
const {
return (_dxFeatureLevel < GX_DIRECTX_VERSION_11_0) ? 0.0f : 0.5f; }
1375 u32 getShaderModel(
void)
const;
1378 GX_FORCE_INLINE b32 isEnablePreZSortByDepth(void){ return _enablePreZSortByDepth; }
1387 return _sharedContext[_writeBuffer]._pBackBufferDepthStencil;
1389 return _pBackBufferDepthStencil;
1395#if defined(GX_ENABLE_HDR_MONITOR)
1397 constexpr GxRenderTexture* getRenderTextureHdrWorkingBuffer(
void) {
return _pRenderTextureHdrWorkingBuffer; }
1413#if GX_ENABLE_OCCLUSION_CULLING
1415 constexpr GxRenderQuery* getOcclusionQuery(u32 bufferIndex)
const {
return _sharedContext[bufferIndex]._pOcclusionQuery; }
1428 GX_FORCE_INLINE
void setEnableWarningShaderCompile(
b32 enable){ _enableWarningShaderCompile = enable; }
1431 GX_FORCE_INLINE b32 isEnableWarningShaderCompile(void) const { return _enableWarningShaderCompile; }
1443 void setRenderStateNoCache(
RENDER_STATE renderState, u32 value);
1453 GX_FORCE_INLINE
void setViewportNoCache(
const GxViewportData& viewportData);
1455 void setViewportNoCache(
const GxRect& rect, f32 nearZ, f32 farZ);
1457 void setScissorRectNoCache(
const GxRect& rect);
1459 void setVertexStreamNoCache(u32 slot,
const GxVertexStream* pVertexStream);
1460#if defined(_WINDOWS) || defined(_PS4) || defined(_PS5) || defined(_XBOX_XS)
1462 void setVertexStreamNoCache(u32 slot,
const GxVertexStream* pVertexStream, u32 instanceCount);
1465 void setIndexBufferNoCache(GxRenderIndexBuffer* pIndexBuffer);
1475 void setRenderTargetNoCache(u32 index,
GxRenderTexture* pRenderTarget);
1481 GX_FORCE_INLINE
void setRenderState(
RENDER_STATE renderState, u32 value);
1491 GX_FORCE_INLINE
void setViewport(
const GxViewportData& viewportData);
1493 GX_FORCE_INLINE
void setScissorRect(
const GxRect& rect);
1496 GX_FORCE_INLINE
void setShaderConstantB(
RENDER_SHADER renderShader, u32 startRegister,
const b32* pBooleanArray, u32 count, u32 bindLocationIndex);
1498 GX_FORCE_INLINE
void setShaderConstantB(
RENDER_SHADER renderShader, u32 startRegister,
const b32* pBooleanArray, u32 count);
1502 GX_FORCE_INLINE
void setShaderConstantI(
RENDER_SHADER renderShader, u32 startRegister,
const s32* pIntArray, u32 count, u32 bindLocationIndex);
1504 GX_FORCE_INLINE
void setShaderConstantI(
RENDER_SHADER renderShader, u32 startRegister,
const s32* pIntArray, u32 count);
1508 GX_FORCE_INLINE
void setShaderConstantF(
RENDER_SHADER renderShader, u32 startRegister,
const f32* pFloatArray, u32 count, u32 bindLocationIndex);
1510 GX_FORCE_INLINE
void setShaderConstantF(
RENDER_SHADER renderShader, u32 startRegister,
const f32* pFloatArray, u32 count);
1513 GX_FORCE_INLINE void setVertexStream(u32 slot, const GxVertexStream* pVertexStream);
1514#if defined(_WINDOWS) || defined(_PS4) || defined(_PS5) || defined(_XBOX_XS)
1516 GX_FORCE_INLINE
void setVertexStream(u32 slot,
const GxVertexStream* pVertexStream, u32 instanceCount);
1519 GX_FORCE_INLINE void setIndexBuffer(GxRenderIndexBuffer* pIndexBuffer);
1531 GX_FORCE_INLINE
void setRenderTarget(u32 index,
GxRenderTexture* pRenderTarget);
1533 GX_FORCE_INLINE
void setDepthStencil(
GxRenderTexture* pDepthStencil,
b32 readOnly =
false);
1536 void invalidateState(
void);
1544#if defined(_PS4) || defined(_PS5)
1546 constexpr GxRenderTexture* getDefaultTexture(
void)
const {
return _pDefaultTexture; }
1548 constexpr GxRenderTexture* getDefaultTextureCube(
void)
const {
return _pDefaultTextureCube; }
1552#if GX_USE_DX11 || GX_USE_DX12 || defined(_NX64)
1554 void applyState(
void);
1561 ID3D11Buffer* getVertexShaderConstantBuffer(u32 bufferSize) {
return _vertexShaderConstantPool.allocateSharedBuffer(bufferSize); }
1563 ID3D11Buffer* getPixelShaderConstantBuffer(u32 bufferSize) {
return _pixelShaderConstantPool.allocateSharedBuffer(bufferSize); }
1567 void applyState(
RENDER_SHADER renderShader, u32* pDescriptorCounts, D3D12_GPU_DESCRIPTOR_HANDLE& samplerGpuHandle);
1575 void applySurfaceState(
void);
1577 void applyDrawState(
void);
1581 void swapCommandBufferMemory(u32 index);
1583 void applyDisplayOutputState(
void);
1603 void draw(
const GxCommandDraw* pCommand);
1605 void drawIndexed(
const GxCommandDrawIndexed* pCommand);
1607 void drawMemory(
const GxCommandDrawMemory* pCommand);
1609 void drawIndexedMemory(
const GxCommandDrawIndexedMemory* pCommand);
1610#if GX_ENABLE_COMPUTE_SHADER
1612 void dispatch(
const GxCommandDispatch* pCommand);
1615 void clear(const GxCommandClear* pCommand);
1617 void clearHDR(
const GxCommandClearHDR* pCommand);
1619#if GX_ENABLE_HTILE_STENCIL_MASK
1621 void maskHtileStencilRegion(
const GxCommandMaskHtileStencilRegion* pCommand);
1626 void copyRenderTargetToTexture(
const GxCommandCopyRenderTargetToTexture* pCommand);
1628 void copyDepthStencilToTexture(
const GxCommandCopyDepthStencilToTexture* pCommand);
1630 void copyRenderTargetToTextureStretch(
const GxCommandCopyRenderTargetToTextureStretch* pCommand);
1632 void copyDepthStencilToTextureStretch(
const GxCommandCopyDepthStencilToTextureStretch* pCommand);
1634 void copyRenderTargetToTextureWithMipmap(
const GxCommandCopyRenderTargetToTextureWithMipmap* pCommand);
1638 void beginMarker(GX_CSTR name);
1640 void endMarker(GX_CSTR name);
1644 GX_FORCE_INLINE
void setPredication(
const GxCommandSetPredication* pCommand);
1652 void beginScene(
void);
1654 void endScene(
void);
1657 void waitVSyncOwn(
void);
1660 f32 getFrameRateTargetTime(
void);
1682 void syncRenderThread(
void);
1684#if defined(_WINDOWS)
1686 void waitForGPU(
void);
1688 void waitForGPUCopy(
void);
1703 void executeRender(
void);
1706 void* sendDrawCommandCommonInfo(
void* pData);
1708 void sendRegister(
RENDER_SHADER renderShader,
const GxRegisterSet& registerSet);
1716 void onLostDevice(
void);
1719 b32 onResetDevice(
void);
1722 void onRender(
void);
1744 GX_FORCE_INLINE
void* allocatePacketBlock(
void);
1746 GX_FORCE_INLINE
void* allocateCommandBlock(
void);
1769 constexpr s32 getVramSizeVertex(
void)
const {
return _vramSizeVertex; }
1771 constexpr void addVramSizeVertex(s32 size){ _vramSizeVertex += size; }
1773 constexpr s32 getVramSizeIndex(
void)
const {
return _vramSizeIndex; }
1775 constexpr void addVramSizeIndex(s32 size){ _vramSizeIndex += size; }
1777 constexpr s32 getVramSizeRenderTarget(
void)
const {
return _vramSizeRenderTarget; }
1779 constexpr void addVramSizeRenderTarget(s32 size){ _vramSizeRenderTarget += size; }
1781 constexpr s32 getVramSizeTexture(
void)
const {
return _vramSizeTexture; }
1783 constexpr void addVramSizeTexture(s32 size){ _vramSizeTexture += size; }
1785 constexpr s32 getVramSizeFilter(
void)
const {
return _vramSizeFilter; }
1787 constexpr void addVramSizeFilter(s32 size){ _vramSizeFilter += size; }
1789 constexpr s32 getVramSizeOther(
void)
const {
return _vramSizeOther; }
1791 constexpr void addVramSizeOther(s32 size){ _vramSizeOther += size; }
1793 constexpr s32 getVramSizeVertexDevelop(
void)
const {
return _vramSizeVertexDevelop; }
1795 constexpr void addVramSizeVertexDevelop(s32 size){ _vramSizeVertexDevelop += size; }
1797 constexpr s32 getVramSizeIndexDevelop(
void)
const {
return _vramSizeIndexDevelop; }
1799 constexpr void addVramSizeIndexDevelop(s32 size){ _vramSizeIndexDevelop += size; }
1801 constexpr s32 getVramSizeRenderTargetDevelop(
void)
const {
return _vramSizeRenderTargetDevelop; }
1803 constexpr void addVramSizeRenderTargetDevelop(s32 size){ _vramSizeRenderTargetDevelop += size; }
1805 constexpr s32 getVramSizeTextureDevelop(
void)
const {
return _vramSizeTextureDevelop; }
1807 constexpr void addVramSizeTextureDevelop(s32 size){ _vramSizeTextureDevelop += size; }
1809 constexpr s32 getVramSizeFilterDevelop(
void)
const {
return _vramSizeFilterDevelop; }
1811 constexpr void addVramSizeFilterDevelop(s32 size){ _vramSizeFilterDevelop += size; }
1813 constexpr s32 getVramSizeOtherDevelop(
void)
const {
return _vramSizeOtherDevelop; }
1815 constexpr void addVramSizeOtherDevelop(s32 size){ _vramSizeOtherDevelop += size; }
1818#if defined(_PS4) || defined(_PS5) || defined(_NX64)
1820 GX_FORCE_INLINE
void* allocateLocal(u32 size, u32 alignment);
1822 GX_FORCE_INLINE
void* allocateMain(u32 size, u32 alignment);
1824 GX_FORCE_INLINE
void free(
void* pAddress);
1829 void* allocateStorage(u32 size);
1831 GxNativeMemoryPool* createMemoryPool(u32 size, MEMORY_POOL_TYPE type,
void* pBuffer =
nullptr);
1833 void deleteMemoryPool(GxNativeMemoryPool* pMemory);
1836 void createBufferFromShaderPool(GxNativeBuffer* pBuffer, u32 size);
1838 void deleteBufferFromShaderPool(u32 offset);
1841 void createBufferFromCommonPool(GxNativeTextureBuilder* pBuilder);
1843 void createBufferFromCommonPool(GxNativeBuffer* pBuffer, u32 size);
1845 void deleteBufferFromCommonPool(u32 offset);
1848 void createZCullBuffer(u32 size);
1851 GX_FORCE_INLINE u32 registerTexturePool(GxNativeTexture* pTexture, GxNativeTextureView* pView);
1853 GX_FORCE_INLINE
void unregisterTexturePool(u32
id);
1856 GX_FORCE_INLINE u32 registerSamplerPool(GxNativeSampler* pSampler);
1858 GX_FORCE_INLINE u32 registerSamplerPool(GxNativeSamplerBuilder* pBuilder);
1862 GX_FORCE_INLINE
void unregisterSamplerPool(u32
id);
1865 constexpr u32 getCommandBufferUsedSizeMax(
void)
const {
return _commandBufferUsedMax; }
1867 constexpr u32 getControlBufferUsedSizeMax(
void)
const {
return _controlBufferUsedMax; }
1871 constexpr GxGpuCounter* getGpuCounter(
void)
const {
return _pGpuCounter; }
1886 b32 requestSaveScreenshot(GX_CSTR fileName,
b32 useScreenshotNumber =
true);
1889 GX_FORCE_INLINE
GxColor getChromaKeyColor(
void)
const {
return _chromaKeyColor; }
1891 GX_FORCE_INLINE
void setChromaKeyColor(
const GxColor color) { _chromaKeyColor = color; }
1893 GX_FORCE_INLINE
b32 isChromaKeyingToAlpha(
void)
const {
return _chromaKeyingToAlpha; }
1895 GX_FORCE_INLINE
void setChromaKeyingToAlpha(
b32 enable) { _chromaKeyingToAlpha = enable; }
1898 constexpr u32 getHighResolutionScreenshotScaleX(
void)
const {
return _highResolutionScreenshotScaleX; }
1900 constexpr u32 getHighResolutionScreenshotScaleY(
void)
const {
return _highResolutionScreenshotScaleY; }
1902 void requestSaveHighResolutionScreenshot(
void);
1904 constexpr s32 isHighResolutionScreenshotCapturing(
void)
const {
return _highResolutionScreenshotPhase >= 0; }
1906 constexpr u32 getHighResolutionScreenshotCapturingPhaseX(
void)
const {
return (_highResolutionScreenshotPhase / _bufferCount) % _highResolutionScreenshotScaleX; }
1908 constexpr u32 getHighResolutionScreenshotCapturingPhaseY(
void)
const {
return (_highResolutionScreenshotPhase / _bufferCount) / _highResolutionScreenshotScaleX; }
1910 GX_FORCE_INLINE
const GxPerformanceCounterView getPerformanceCounter(
RENDER_VIEW index)
const {
return _performanceCounter[
static_cast<s32
>(index)]; }
1911#if defined(_WINDOWS)
1913 void requestSaveCubeMapShot(
void);
1915 GX_FORCE_INLINE
b32 isCubeMapShotCapturing(
void)
const {
return _cubeMapShotPhase >= 0; }
1917 constexpr u32 getCubeMapShotCapturingFace(
void)
const {
return (_cubeMapShotPhase / _bufferCount); }
1919 GX_FORCE_INLINE
GxVector3 getCubeMapShotPosition(
void)
const {
return _cubeMapShotPosition; }
1925 void buildCommandBlankScreen(
void);
1927 void buildCommandInner(GxPacket* pPacket[GxThread::HARDWARE_THREAD_MAX]);
1929#if defined(_WINDOWS)
1931 void copyTexture(GxNativeTexture* pDstTexture,
GxRenderTexture* pSrcTexture);
1935 void saveScreenshot(
void);
1936#if defined(_WINDOWS)
1938 void saveBmp(GX_CSTR fileName, GxNativeTexture pTexture, s32 width, s32 height);
1943 void saveUserScreenshot(
void);
1955 b32 _forceVBlankWait;
1956 u32 _frameRateCounter;
1959 f32 _frameRateAverage;
1961 f32 _frameTimeAverage;
1962 f32 _frameTimeTotal;
1965 b32 _frameAverageAvailable;
1967 u64 _gpuTimeStampFrequency;
1968 b32 _disableShadowPass;
1969 b32 _disableOverPaintPass;
1970 b32 _disableProcedualPass;
1971 b32 _useDummyShader;
1972 b32 _enableWarningShaderCompile;
1973 GxSize _outputResolution;
1974 b32 _isNormalMap16FP;
1989 GxArray _vertexDeclarationArray;
1990 GxArray _vertexDeclarationHashArray;
1999 GxRenderThread* _pRenderThread;
2000 b32 _useRenderThread;
2001 b32 _useRenderThreadThisFrame;
2004 u32 _commandBufferSize;
2005 u32 _maxCommandBufferSize;
2006 u32 _usedCommandBufferSize;
2007 GxRenderResourceRegister* _pRenderResourceRegister;
2013 b32 _stencilTwoSideEnableNow;
2016 GxViewportData _viewportDataNow;
2022 u32 _maxSkinningJointCount;
2023 b32 _enablePreZSortByDepth;
2030 b32 _isReadOnlyDepthStencilNow;
2031 b32 _isInFailedPredication;
2033 GxVramAllocator* _pVramAllocator;
2039 b32 _userScreenshotRequest;
2040 u32* _pUserScreenshotBuffer;
2041 GxSize _userScreenshotSize;
2046 u32 _markerStackIndex;
2047 GxPerformanceCounterView _performanceCounter[
static_cast<s32
>(
RENDER_VIEW::MAX)];
2050 b32 _chromaKeyingToAlpha;
2051 u32 _highResolutionScreenshotScaleX;
2052 u32 _highResolutionScreenshotScaleY;
2053 s32 _highResolutionScreenshotPhase;
2054 GxScreenshotStateStore _screenshotStateStore;
2055 s32 _vramSizeVertex;
2057 s32 _vramSizeRenderTarget;
2058 s32 _vramSizeTexture;
2059 s32 _vramSizeFilter;
2061 s32 _vramSizeVertexDevelop;
2062 s32 _vramSizeIndexDevelop;
2063 s32 _vramSizeRenderTargetDevelop;
2064 s32 _vramSizeTextureDevelop;
2065 s32 _vramSizeFilterDevelop;
2066 s32 _vramSizeOtherDevelop;
2067 b32 _enableGpuProfiling;
2068 b32 _isGpuProfiling;
2072#if defined(GX_ENABLE_HDR_MONITOR)
2076#if defined(_WINDOWS) || defined(_PS4) || defined(_PS5) || defined(_XBOX_XS)
2081 u32 _useTexcoordCount;
2084#if defined(_NX64) || GX_USE_DX11
2087#if defined(_NX64) || GX_USE_DX11 || GX_USE_DX12
2090#if defined(_PS5) || GX_USE_DX12
2094#if GX_USE_DX11 || GX_USE_DX12
2095 b32 _enableContextFlush;
2096 D3D_FEATURE_LEVEL _dxFeatureLevel;
2098 GxNativeDevice _pDevice;
2099 GxNativeSwapChain* _pSwapChain;
2100 IDXGIAdapter* _pAdapter;
2106 b32 _disableSrgbTextureDevelop;
2111 GxRenderShaderConstantPool _vertexShaderConstantPool;
2112 GxRenderShaderConstantPool _pixelShaderConstantPool;
2113 GxD3D11State _d3dStateNow;
2114 GxD3D11State _d3d11StateSet;
2116 GxD3D11SamplerStateTable _d3d11SamplerStateTable;
2117 GxD3D11RasterizerStateTable _d3d11RasterizerStateTable;
2118 GxD3D11DepthStencilStateTable _d3d11DepthStencilStateTable;
2119 GxD3D11BlendStateTable _d3d11BlendStateTable;
2121 ID3D11DeviceContext* _pD3D11ImmediateContext;
2123 ID3D11DeviceContext* _pD3D11DeferredContextAsync;
2128 D3D12_GRAPHICS_PIPELINE_STATE_DESC _d3dStateNow;
2129#if GX_ENABLE_COMPUTE_SHADER
2130 D3D12_COMPUTE_PIPELINE_STATE_DESC _d3dComputeStateNow;
2132 ComPtr<ID3D12GraphicsCommandList> _pD3D12GraphicsCommandList;
2133 ComPtr<ID3D12CommandQueue> _pD3D12CommandQueue;
2134 ComPtr<ID3D12GraphicsCommandList> _pD3D12GraphicsCommandListCopy;
2135 ComPtr<ID3D12CommandAllocator> _pD3DCommandAllocatorCopy;
2137#if defined(_WINDOWS)
2138 ComPtr<ID3D12CommandQueue> _pD3D12CommandQueueCopy;
2139 ComPtr<ID3D12Fence> _pD3D12Fence;
2140 ComPtr<ID3D12Fence> _pD3D12FenceCopy;
2141 Microsoft::WRL::Wrappers::Event _fenceEvent;
2142 Microsoft::WRL::Wrappers::Event _fenceEventCopy;
2143 u64 _fenceValueCopy;
2145 ComPtr<ID3D12DescriptorHeap> _descriptorHeapView;
2146 ComPtr<ID3D12DescriptorHeap> _descriptorHeapSampler;
2147 ComPtr<ID3D12DescriptorHeap> _descriptorHeapSamplerSet;
2148 u32 _descriptorCountView;
2149 u32 _descriptorCountSampler;
2150 u32 _descriptorCountSamplerSet;
2151 ComPtr<ID3D12RootSignature> _pRootSignature;
2152#if GX_ENABLE_COMPUTE_SHADER
2153 ComPtr<ID3D12RootSignature> _pRootSignatureCompute;
2157 ComPtr<ID3D12PipelineState> _pPipelineState[PIPELINE_STATE_MAX];
2159 b32 _pipelineStateDirty;
2160 D3D12_FEATURE_DATA_ROOT_SIGNATURE _featureLevelRootSignature;
2161 D3D12_FEATURE_DATA_D3D12_OPTIONS _featureLevelOptions;
2162 D3D12_FEATURE_DATA_D3D12_OPTIONS1 _featureLevelOptions1;
2163 D3D12_FEATURE_DATA_D3D12_OPTIONS2 _featureLevelOptions2;
2164 D3D12_FEATURE_DATA_D3D12_OPTIONS3 _featureLevelOptions3;
2165 D3D12_FEATURE_DATA_D3D12_OPTIONS4 _featureLevelOptions4;
2166 D3D12_FEATURE_DATA_D3D12_OPTIONS5 _featureLevelOptions5;
2167 D3D12_FEATURE_DATA_D3D12_OPTIONS6 _featureLevelOptions6;
2168 D3D12_FEATURE_DATA_D3D12_OPTIONS7 _featureLevelOptions7;
2170 ComPtr<ID3D12DeviceRemovedExtendedDataSettings> _pDredSettings;
2174#if defined(_PS4) || defined(_PS5)
2179#if defined(_WINDOWS)
2181 GxSize _currentClientSize;
2182 GxSize _outputResolutionRequest;
2183 GxSize _backBufferResolution;
2184 b32 _outputResolutionRestoreRequest;
2185 b32 _outputResolutionRestoreReady;
2188 b32 _isFullScreenReady;
2189 GxSize _fullScreenResolution;
2190 b32 _useAltEnterKeyFullScreen;
2192 GxDisplayDeviceInformation _enumDisplayDeviceInformation[16];
2193 GxSize _enumDisplayResolution[128];
2194 u32 _fullScreenScalingMode;
2195 b32 _enableWindowResizeCheck;
2197 s32 _cubeMapShotPhase;
2199 u32 _cubeMapShotSize;
2200 b32 _cubeMapShotGenerateMipMaps;
2201 b32 _cubeMapShotSaveDds;
2202 b32 _cubeMapShotSaveBmp;
2203 b32 _cubeMapConvertOrochi1Format;
2204 GxNativeTexture _pCapturingCubeMap;
2208#elif defined(_XBOX_XS)
2209 D3D12XBOX_FRAME_PIPELINE_TOKEN _framePipelineToken;
2211 GxNativeMemoryPool* _pRegisterMemoryPool;
2212 GxRegisterBlockInformation _registerBlockInformation[
static_cast<u32
>(
RENDER_SHADER::MAX)][RENDER_UNIFORM_BLOCK_COUNT_MAX];
2225 GxNativeBuffer _zCullBuffer;
2226 u32 _zCullBufferSize;
2229 GxNativeMemoryPool* _pShaderPool;
2230 GxNativeMemoryPool* _pCommonPool;
2231 void* _pGraphicsAllocator;
2232 void* _pGraphicsAllocatorMemory;
2233 void* _pFirmwareMemory;
2234 GxTexturePoolManager* _pTexturePoolManager;
2235 GxFrameworkManager* _pFrameworkManager;
2236 void* _pQueueMemory;
2237 GxNativeDevice _device;
2238 GxNativeQueue _queue;
2239 GxNativeCommandBuffer* _pCommandBuffer;
2240 GxNativeCommandHandle _commandHandle;
2241 GxNativeMemoryPool* _pCommandBufferPool;
2242 void* _pControlBufferPool;
2243 GxNativeSync _commandBufferSync;
2244 u32 _nativeCommandBufferSize;
2245 u32 _commandBufferUsedMax;
2246 u32 _controlBufferSize;
2247 GxNativeMemoryPool* _pShaderScratchMemoryPool;
2248 u32 _shaderScratchMemorySize;
2249 u32 _shaderScratchMemoryCurrent;
2250 u32 _uniformBlockBufferSize;
2251 u32 _controlBufferUsedMax;
2256 GxNativeColorState _colorStateNow;
2257 GxNativePolygonState _polygonStateNow;
2258 GxNativeMultiSampleState _multisampleStateNow;
2259 GxNativeDepthStencilState _depthStencilStateNow;
2262 GxGpuCounter* _pGpuCounter;
2266 GX_NEO_RENDER_MODE _neoRenderMode;
2270 u32 _constBufferSize;
2398 void getPropertyRenderResource(
void* pValue, u32 index);
2400 u32 getPropertyRenderResourceCount(
void);
2439 u32 _bindingLocationIndex;
2614#if GX_ENABLE_COMPUTE_SHADER
2618struct GxRenderDevice::GxCommandDispatch
2621 u32 _threadGroupCountX;
2622 u32 _threadGroupCountY;
2623 u32 _threadGroupCountZ;
2627#if GX_ENABLE_OCCLUSION_CULLING
2631struct GxRenderDevice::GxCommandResolveOcclusionQuery
2770struct GxRenderDevice::GxCommandSetTiledCacheAction
2772 GxNativeTiledCacheAction _action;
2778struct GxRenderDevice::GxCommandSetTiledCacheTileSize
2787struct GxRenderDevice::GxCommandSaveZCullData
2795struct GxRenderDevice::GxCommandRestoreZCullData
2801#if GX_ENABLE_HTILE_STENCIL_MASK
2805struct GxRenderDevice::GxCommandMaskHtileStencilRegion
2826template<class STATE, class DESC, typename GxD3D11CreateStateFunction<STATE,DESC>::type CREATE_STATE>
2827STATE* GxD3D11StateTable<STATE, DESC, CREATE_STATE>::get(
const DESC& desc)
2831 for(u32 i = 0; i < _table.getCount(); i++)
2833 auto* pEntry =
static_cast<GxD3D11StateEntry*
>(_table[i]);
2834 if( (pEntry->_hash == hash) && (GX_MEMCMP(&pEntry->_desc, &desc,
sizeof(desc)) == 0) )
2836 return pEntry->_pState;
2842 pEntry->_hash = hash;
2843 pEntry->_desc = desc;
2844 (getGxRenderDevice()->getDevice()->*CREATE_STATE)(&pEntry->_desc, &pEntry->_pState);
2846 _table.addBottom(pEntry);
2847 return pEntry->_pState;
2854#if GX_USE_DX11 || GX_USE_DX12
2856extern HRESULT __GxCheckDXResult(GX_CSTR file,
const s32 sline, GX_CSTR expression, HRESULT result);
2857#define GX_CHECK_DX_RESULT(expression) __GxCheckDXResult(__FILE__, __LINE__, #expression, (expression))
2859#define GX_CHECK_DX_RESULT(expression) (expression)
2863GX_CORE_NAMESPACE_END()
2865#include "GxRenderDevice.inl"
#define GX_ALLOCATE_MEMORY(pAllocatorList, size)
Definition GxAllocator.h:536
#define GX_SAFE_FREE_MEMORY(pAddress)
Definition GxAllocator.h:594
#define GX_PROHIBIT_CLASS_BASE_REFERENCE(__CLASS__)
GxClassBaseReference継承の禁止宣言(new以外の生成禁止 + コピー禁止)
Definition GxBase.h:244
#define GX_SAFE_RELEASE(__POINTER__)
解放(参照カウンタを使用する場合)
Definition GxBase.h:316
#define GX_PROHIBIT_CLASS_BASE(__CLASS__)
GxClassBase継承の禁止宣言
Definition GxBase.h:240
void GxTypedObject
その他
Definition GxDefine.h:213
u32 GX_HANDLE
ハンドル
Definition GxDefine.h:214
RENDER_VIEW
描画優先度(ビュー)
Definition GxRender.h:442
RENDER_ANTI_ALIASING
アンチエイリアシング
Definition GxRender.h:382
RENDER_QUERY_TYPE
クエリタイプ
Definition GxRender.h:1228
RENDER_FORMAT
フォーマット
Definition GxRender.h:269
RENDER_INDEX_TYPE
インデックスバッファ形式
Definition GxRender.h:147
RENDER_STATE
描画ステート
Definition GxRender.h:550
RENDER_PRIMITIVE_TYPE
プリミティブ形式
Definition GxRender.h:131
RENDER_FRAME_RATE
フレームレート
Definition GxRender.h:97
RENDER_SHADER
Definition GxRender.h:75
RENDER_PASS
描画優先度(パス)
Definition GxRender.h:515
@ RENDER_MARKER_NEST_COUNT
マーカーのネストできる数
Definition GxRender.h:43
@ RENDER_TEXTURE_COUNT_MAX
同時読み込み可能なテクスチャ数(0は無効を表すので、実際は4095枚)
Definition GxRender.h:40
@ RENDER_TEXTURE_SAMPLER_COUNT_MAX
サポートするテクスチャサンプラ数
Definition GxRender.h:37
@ RENDER_TEXTURE_SAMPLER_UAV_COUNT_MAX
サポートするUAVテクスチャサンプラ数
Definition GxRender.h:39
@ RENDER_SHADER_CONST_MAX
サポートするシェーダレジスタ数
Definition GxRender.h:29
@ RENDER_MARKER_NAME_LENGTH
マーカー名の文字列長
Definition GxRender.h:42
@ RENDER_TARGET_COUNT_MAX
サポートするレンダーターゲット数
Definition GxRender.h:24
@ RENDER_VERTEX_STREAM_COUNT_MAX
サポートする頂点ストリーム数
Definition GxRender.h:26
RENDER_SUB_VIEW
描画優先度(サブビュー)
Definition GxRender.h:485
u32(* GX_RENDERDEVICE_ERROR_FUNCTION)(GX_CSTR message, u32 returnValue, u32 errorId, u32 value)
Definition GxRenderDevice.h:40
フレームアロケータ
Definition GxAllocatorFrame.h:19
配列クラス
Definition GxArray.h:18
ハンドラ基本クラス
Definition GxCallback.h:27
オブジェクト基底クラス
Definition GxBase.h:88
クリティカルセクションクラス
Definition GxThread.h:20
イベントクラス
Definition GxThread.h:132
b32 setEvent(void)
イベントを設定
Definition GxThread.cpp:268
b32 waitEvent(s32 milliSecond=-1)
イベント待機
Definition GxThread.cpp:291
JSON解析用ノード
Definition GxJson.h:108
GX_FORCE_INLINE s32 getS32(void) const
S32値を取得
Definition GxJson.h:149
連想配列クラス
Definition GxMap.h:19
static u32 getHash32(void *pData, u32 size)
ハッシュ値取得(32bit、データ、サイズ指定版)
Definition GxMath.cpp:241
static constexpr u32 VALUE_1K
1K
Definition GxMath.h:129
static constexpr u32 VALUE_32K
32K
Definition GxMath.h:134
static constexpr u32 VALUE_8K
8K
Definition GxMath.h:132
プロパティクラス
Definition GxProperty.h:48
コンピュートシェーダを管理する
Definition GxRenderComputeShader.h:21
描画コマンドの並列発行を管理します。
Definition GxRenderContext.h:28
Definition GxRenderDevice.h:497
static constexpr GxPriority::priorityType priorityValueMax
プライオリティ最大値
Definition GxRenderDevice.h:501
管理ブロックを外部に置くことで特殊メモリなど無駄なく使いたい場合
Definition GxRenderDevice.inl:206
描画リソースの管理を行います
Definition GxRenderDevice.h:2354
描画命令を発行するスレッドを管理します
Definition GxRenderDevice.h:2281
GX_FORCE_INLINE b32 isRequestStop(void) const
停止リクエストチェック
Definition GxRenderDevice.h:2321
GxEvent _startEvent
開始イベント
Definition GxRenderDevice.h:2332
GX_FORCE_INLINE void setRequestStop(void)
停止リクエスト設定
Definition GxRenderDevice.h:2319
GxEvent _completeEvent
完了イベント
Definition GxRenderDevice.h:2333
GX_FORCE_INLINE b32 waitCompleteEvent(s32 milliSecond=-1)
完了イベント待ち
Definition GxRenderDevice.h:2315
GX_FORCE_INLINE b32 setStartEvent(void)
開始イベント開始
Definition GxRenderDevice.h:2313
void threadMain(void *pArgument) override
描画ループ
Definition GxRenderDevice.cpp:11620
GX_FORCE_INLINE b32 setCompleteEvent(void)
完了イベント開始
Definition GxRenderDevice.h:2317
b32 _requestStopFlag
停止リクエストフラグ
Definition GxRenderDevice.h:2334
GX_FORCE_INLINE b32 waitStartEvent(s32 milliSecond=-1)
開始イベント待ち
Definition GxRenderDevice.h:2311
VRAM を管理します
Definition GxRenderDevice.inl:30
描画関連の依存をこのクラスで吸収します
Definition GxRenderDevice.h:450
constexpr void setGamma(f32 gamma)
ガンマ補正値の設定
Definition GxRenderDevice.h:1029
constexpr u32 getWriteBuffer(void) const
書き込むバッファIndexの取得
Definition GxRenderDevice.h:1032
b32 unloadResource(void)
リソースアンロード関数
Definition GxRenderDevice.cpp:2962
constexpr f32 getGpuFrameTime(void) const
GPUフレーム時間の取得
Definition GxRenderDevice.h:1006
GxRenderVertexDeclaration * createVertexDeclaration(const GxRenderVertexElement *pElements)
頂点宣言を作成
Definition GxRenderDevice.cpp:3863
GX_FORCE_INLINE b32 getFrameAverageAvailable(void) const
平均フレームの値が有効か
Definition GxRenderDevice.h:1010
GX_FORCE_INLINE const GxString & getDeviceName(void) const
デバイス名を取得
Definition GxRenderDevice.h:1049
static constexpr u32 FRAME_TIME_LOG_COUNT_I
フレーム時間ログ数(間欠)
Definition GxRenderDevice.h:919
void stopRenderThread(void)
プレゼントパラメータ作成
Definition GxRenderDevice.cpp:2664
GxRenderVertexBuffer * createVertexBuffer(u32 size, u32 attribute)
頂点バッファ作成
Definition GxRenderDevice.cpp:3815
GxRenderTexture * createRenderTarget(const GxSize &size, RENDER_FORMAT format, RENDER_ANTI_ALIASING antiAliasing, u32 attribute)
レンダーターゲットを作成
Definition GxRenderDevice.cpp:4005
GX_FORCE_INLINE u32 getMaxSkinningJointCount(void)
1メッシュに使用する最大のジョイント数
Definition GxRenderDevice.inl:363
constexpr f32 getFrameTime(void) const
最新フレーム時間の取得
Definition GxRenderDevice.h:1002
constexpr f32 getFrameRate(void) const
最新フレームレートの取得
Definition GxRenderDevice.h:998
constexpr f32 getFrameTimeAverage(void) const
平均フレーム時間の取得
Definition GxRenderDevice.h:1004
constexpr u32 getRenderBuffer(void) const
描画するバッファIndexの取得
Definition GxRenderDevice.h:1034
constexpr f32 getAspectRatio(void) const
アスペクト比の取得
Definition GxRenderDevice.h:1025
GX_FORCE_INLINE GxVector2 getResolutionScaleTextureSSAO(void) const
SSAOテクスチャの解像度拡縮率を取得
Definition GxRenderDevice.h:1380
void freeUserScreenshotBuffer(void)
ユーザースクリーンショットバッファを解放
Definition GxRenderDevice.cpp:10700
void startRender(void)
描画開始
Definition GxRenderDevice.cpp:9896
f32 getFrameRateTargetF32(void)
目標フレームレートの取得(f32)
Definition GxRenderDevice.cpp:3100
GX_FORCE_INLINE b32 isCpuRenderSkipping(void) const
現在のフレームのCPU描画処理がスキップされている
Definition GxRenderDevice.h:1014
void setDefaultState(void)
デフォルトステート設定
Definition GxRenderDevice.cpp:7607
void storeState(void)
ステートキャッシュをストア
Definition GxRenderDevice.cpp:5650
static constexpr u32 COMMAND_BLOCK_SIZE
コマンドブロックサイズ
Definition GxRenderDevice.h:923
GxRenderTexture * createTexture3D(const GxSize &size, u32 depth, u32 mipLevel, RENDER_FORMAT format, u32 attribute)
テクスチャを作成(3D)
Definition GxRenderDevice.cpp:3953
void buildCommand(void)
描画コマンド作成
Definition GxRenderDevice.cpp:9623
GX_FORCE_INLINE b32 isDisableShadowPass(void) const
シャドウパスの処理を無効にしているか否かを取得
Definition GxRenderDevice.h:1406
GX_FORCE_INLINE size_t getLocalMemorySize(void) const
VRAMローカルメモリ(ビデオメモリ)サイズ取得
Definition GxRenderDevice.inl:841
void setFrameRateTarget(RENDER_FRAME_RATE frameRate)
目標フレームレートの設定
Definition GxRenderDevice.cpp:3144
GX_FORCE_INLINE size_t getFreeMainMemorySize(void) const
VRAMメインメモリ(GPUからアクセス可能なメインメモリやドライバ目的のメモリ)空きサイズ取得
Definition GxRenderDevice.inl:831
GX_FORCE_INLINE GxRenderTexture * getTextureByHandle(GX_HANDLE handle) const
ハンドルからテクスチャを取得
Definition GxRenderDevice.inl:342
void flushGpuCommandBuffer(void)
GPUコマンドバッファのフラッシュ
Definition GxRenderDevice.cpp:10298
void begin(void)
描画パケット収集開始
Definition GxRenderDevice.cpp:9562
static constexpr u32 PACKET_BLOCK_SIZE
パケットブロックサイズ
Definition GxRenderDevice.h:921
GX_FORCE_INLINE const GxSize & getOutputResolution(void) const
出力解像度の取得
Definition GxRenderDevice.h:1017
GX_FORCE_INLINE size_t getMainMemorySize(void) const
VRAMメインメモリ(GPUからアクセス可能なメインメモリやドライバ目的のメモリ)サイズ取得
Definition GxRenderDevice.inl:821
void unsetAllRenderResource(void)
全描画リソースの設定解除
Definition GxRenderDevice.cpp:7738
GX_FORCE_INLINE b32 isNormalMap16FP() const
ノーマルマップが16ビットfloatかを取得
Definition GxRenderDevice.h:1434
GX_FORCE_INLINE void setResolutionScaleTextureSSAO(const GxVector2 &scale)
SSAOテクスチャの解像度拡縮率を設定
Definition GxRenderDevice.h:1382
constexpr RENDER_FRAME_RATE getFrameRateTarget(void) const
目標フレームレートの取得
Definition GxRenderDevice.h:992
GX_FORCE_INLINE GxRenderTexture * getBackBufferDepthStencil(void) const
バックバッファ用深度ステンシルを取得
Definition GxRenderDevice.h:1384
void storeVertexDataState(void)
頂点ステートキャッシュをストア
Definition GxRenderDevice.cpp:5722
COMMAND_TYPE
コマンドタイプ
Definition GxRenderDevice.h:528
@ SET_DEPTH_TEST_STATE
深度テストステートの設定
@ SET_RENDER_TARGET
レンダーターゲットの設定
@ SET_DEPTH_STENCIL
深度ステンシルの設定
@ CALLBACK_COPYARG
コールバック 引数をコンテキストにコピーする
@ DRAW_INDEXED_MEMORY
インデックスあり描画(メインメモリ)
@ COPY_RENDER_TARGET_TO_TEXTURE_WITH_MIPMAP
レンダーターゲットをテクスチャにミップマップつきでコピーする
@ FLUSH_GPU_COMMAND_BUFFER
GPUコマンドバッファのフラッシュ
@ SET_RENDER_STATE
描画ステートの設定
@ SET_ALPHA_TEST_STATE
アルファテストステートの設定
@ DRAW_MEMORY
インデックスなし描画(メインメモリ)
@ COPY_DEPTH_STENCIL_TO_TEXTURE
深度ステンシルをテクスチャにコピーする
@ COPY_RENDER_TARGET_TO_TEXTURE
レンダーターゲットをテクスチャにコピーする
@ SET_PREDICATION
プレディケーションの設定
@ SET_BLEND_STATE
ブレンドステートの設定
@ COPY_DEPTH_STENCIL_TO_TEXTURE_STRETCH
深度ステンシルをテクスチャに拡大/縮小コピーする
@ SET_STENCIL_TEST_STATE
ステンシルテストステートの設定
@ SET_SCISSOR_RECT
シザリング矩形の設定
@ COPY_RENDER_TARGET_TO_TEXTURE_STRETCH
レンダーターゲットをテクスチャに拡大/縮小コピーする
@ FORCE_DRAW_STATE
描画ステート強制変更
void sync(void)
描画終了待ち
Definition GxRenderDevice.cpp:9688
static constexpr u32 FRAME_TIME_LOG_COUNT
フレーム時間ログ数
Definition GxRenderDevice.h:917
constexpr u64 getGpuTimeStampFrequency(void) const
GPUタイムスタンプ周波数の取得
Definition GxRenderDevice.h:1008
void terminate(void)
終了関数
Definition GxRenderDevice.cpp:2686
GX_FORCE_INLINE void setDisableProcedualPass(b32 disable)
プロシージャルパスの処理を無効にするか否かの設定
Definition GxRenderDevice.h:1419
constexpr f32 getFrameRateAverage(void) const
平均フレームレートの取得
Definition GxRenderDevice.h:1000
b32 initialize(const GxRenderDeviceInitialInformation *pInitialInformation)
初期化関数
Definition GxRenderDevice.cpp:1017
b32 requestSaveUserScreenshot(void)
Master用スクリーンショット保存リクエスト
Definition GxRenderDevice.cpp:10663
constexpr u32 getContextBufferCount(void) const
コンテキストのバッファ数を取得
Definition GxRenderDevice.h:1699
void forceDrawState(const GxCommandForceDrawState *pCommand)
描画ステート強制変更
Definition GxRenderDevice.cpp:7781
u32 * getUserScreenshotBuffer(GxSize &size)
ユーザースクリーンショットバッファを取得
Definition GxRenderDevice.cpp:10689
GX_FORCE_INLINE size_t getFreeLocalMemorySize(void) const
VRAMローカルメモリ(ビデオメモリ)空きサイズ取得
Definition GxRenderDevice.inl:851
GX_FORCE_INLINE void * allocateCommandBufferMemory(u32 size)
コマンドバッファメモリから確保
Definition GxRenderDevice.inl:418
GX_FORCE_INLINE void setDisableOverPaintPass(b32 disable)
オーバーペイントの処理を無効にするか否かの設定
Definition GxRenderDevice.h:1409
void renderBlankScreen(void)
初期化中のブランク画面描画
Definition GxRenderDevice.cpp:9934
GX_FORCE_INLINE f32 getElapsedFrameTime(void) const
現在のフレームの経過時間を取得
Definition GxRenderDevice.h:990
GX_FORCE_INLINE GxRenderTexture * getBackBuffer(void) const
バックバッファを取得
Definition GxRenderDevice.h:1039
GxRenderDevice(void)
デフォルトコンストラクタ
Definition GxRenderDevice.cpp:774
void setAllContextPriority(RENDER_VIEW view, RENDER_SUB_VIEW subView, RENDER_PASS pass, u32 subPriority)
全コンテキストのプライオリティを設定する
Definition GxRenderDevice.cpp:9541
GX_FORCE_INLINE b32 isUseDummyShader(void) const
マスターでコンパイルされていないバリエーションが実行されようとしたときに
Definition GxRenderDevice.h:1424
GX_FORCE_INLINE size_t getTotalAllocatedHighLocalMemorySize(void) const
VRAMローカルメモリ最大到達サイズ取得
Definition GxRenderDevice.inl:861
GX_FORCE_INLINE void setDisableShadowPass(b32 disable)
シャドウパスの処理を無効にするか否かの設定
Definition GxRenderDevice.h:1404
constexpr f32 getGamma(void) const
ガンマ補正値の取得
Definition GxRenderDevice.h:1027
GX_FORCE_INLINE b32 isDisableOverPaintPass(void) const
オーバーペイントの処理を無効にしているか否かを取得
Definition GxRenderDevice.h:1411
GxRenderTexture * createTexture2D(const GxSize &size, u32 mipLevel, RENDER_FORMAT format, u32 attribute)
テクスチャを作成(2D)
Definition GxRenderDevice.cpp:3926
GxRenderQuery * createQuery(RENDER_QUERY_TYPE type)
クエリを作成
Definition GxRenderDevice.cpp:4134
GxRenderPixelShader * createShader(const void *pAssembledCode, u32 assembledCodeSize, u32 constantRegisterParameterCount, u32 usageInputSemantics, u32 constantBufferSize)
ピクセルシェーダを作成
Definition GxRenderDevice.h:1328
void measureFPS(void)
FPSの計測
Definition GxRenderDevice.cpp:10384
GxRenderIndexBuffer * createIndexBuffer(u32 size, RENDER_INDEX_TYPE type, u32 attribute)
インデックスバッファを作成
Definition GxRenderDevice.cpp:3840
static void * CACHE_INVALIDATE_POINTER
キャッシュ無効状態ポインタ(問題があれば別途フラグを用意する)
Definition GxRenderDevice.h:733
GX_RENDERDEVICE_ERROR_FUNCTION _pUserErrorFunction
ユーザー定義のエラーコールバック
Definition GxRenderDevice.h:2035
GxRenderTexture * createDepthStencil(const GxSize &size, RENDER_FORMAT format, RENDER_ANTI_ALIASING antiAliasing, u32 attribute)
深度ステンシルを作成
Definition GxRenderDevice.cpp:4111
GxRenderTexture * createTextureCube(const GxSize &size, u32 mipLevel, RENDER_FORMAT format, u32 attribute)
テクスチャを作成(Cube)
Definition GxRenderDevice.cpp:3979
T * createShader(const void *pAssembledCode, u32 assembledCodeSize, u32 constantRegisterParameterCount, u32 usageInputSemantics, u32 constantBufferSize)
シェーダを作成
Definition GxRenderDevice.h:1311
GX_FORCE_INLINE size_t getTotalAllocatedHighMainMemorySize(void) const
VRAMメインメモリ最大到達サイズ取得
Definition GxRenderDevice.inl:871
constexpr void end(void)
描画パケット収集完了
Definition GxRenderDevice.h:1672
b32 loadResource(void)
リソースロード関数
Definition GxRenderDevice.cpp:2922
static constexpr u32 CACHE_INVALIDATE_VALUE
キャッシュ無効状態値(問題があれば別途フラグを用意する)
Definition GxRenderDevice.h:731
b32 initializeThreadLocalStorage(u32 workerThreadIndex)
スレッドローカルストレージ初期化関数
Definition GxRenderDevice.cpp:2976
GX_FORCE_INLINE b32 isDisableProcedualPass(void) const
プロシージャルパスの処理を無効にしているか否かを取得
Definition GxRenderDevice.h:1421
インデックスバッファを管理する
Definition GxRenderIndexBuffer.h:20
描画関連のイベントを通知します
Definition GxRenderNotifier.h:78
描画関連のイベントを通知します
Definition GxRenderNotifier.h:22
ピクセルシェーダを管理する
Definition GxRenderPixelShader.h:20
void releaseDiscardBuffer(b32 isStoreDevelopMemory=true) override
シェーダ命令コードのバッファなど中間データを解放
Definition GxRenderPixelShader.cpp:121
GPUクエリを管理する
Definition GxRenderQuery.h:19
GPUリソースを管理する
Definition GxRenderResource.h:20
シェーダ共通の処理を記述
Definition GxRenderShader.h:20
テクスチャクラス
Definition GxRenderTexture.h:19
頂点バッファを管理する
Definition GxRenderVertexBuffer.h:20
頂点シェーダに渡す頂点の宣言を管理する
Definition GxRenderVertexDeclaration.h:22
頂点シェーダを管理する
Definition GxRenderVertexShader.h:22
ピクセルシェーダリソース
Definition GxResShader.h:247
頂点シェーダリソース
Definition GxResShader.h:164
実行時型情報クラス
Definition GxRtti.h:154
描画システムクラス
Definition GxSysRenderBase.h:115
スレッドクラス
Definition GxThread.h:177
タイマークラス
Definition GxTimer.h:110
u32 getDiff(GxMath::PREFIX prifix=GxMath::PREFIX::NANO) const
差分を取得
Definition GxTimer.cpp:324
カメラ基礎クラス
Definition GxUnitCameraBase.h:20
シングルトン基礎クラス
Definition GxSingleton.h:19
static constexpr GxRenderDevice * getSingletonPointer(void)
Definition GxSingleton.h:59
色(HDR)
Definition GxColor.h:241
座標
Definition GxStruct.h:867
矩形
Definition GxStruct.h:951
アルファテストステート
Definition GxRender.h:731
ブレンドステート
Definition GxRender.h:847
深度テストステート
Definition GxRender.h:601
GPUの性能
Definition GxRenderDevice.h:597
GPU_TYPE
GPUタイプ
Definition GxRenderDevice.h:600
b32 _hardwarePcf
ハードウェアPCF有効フラグ
Definition GxRenderDevice.h:607
GPU_TYPE _gpuType
GPUタイプ
Definition GxRenderDevice.h:606
b32 _alphaToCoverage
アルファトゥカバレッジ有効フラグ
Definition GxRenderDevice.h:608
終点的な、右目でも左目でも含めっている、絵を片付けます
Definition GxRenderDevice.h:2726
u32 _filler
フィルター
Definition GxRenderDevice.h:2727
マーカー開始
Definition GxRenderDevice.h:2734
GX_CHAR _name[RENDER_MARKER_NAME_LENGTH+1]
マーカー名
Definition GxRenderDevice.h:2735
コールバックコマンド
Definition GxRenderDevice.h:2750
GxCallback::GxHandlerBase _handle
ハンドル
Definition GxRenderDevice.h:2751
u32 _argumentSize
引数サイズ
Definition GxRenderDevice.h:2752
u32 _srcSize
入力サイズ
Definition GxRenderDevice.h:2753
コールバックコマンド
Definition GxRenderDevice.h:2343
void * _pArgument
引数
Definition GxRenderDevice.h:2346
GxCallback::GxHandlerBase _handle
ハンドル
Definition GxRenderDevice.h:2344
void * _pSource
呼び出し元
Definition GxRenderDevice.h:2345
画面クリアコマンド(HDR)
Definition GxRenderDevice.h:2652
u32 _clearFlags
クリアフラグ
Definition GxRenderDevice.h:2653
f32 _clearZ
クリアZ値
Definition GxRenderDevice.h:2654
GxColorHDR _clearColor
クリア色
Definition GxRenderDevice.h:2655
u32 _clearStencil
クリアステンシル値
Definition GxRenderDevice.h:2656
画面クリアコマンド
Definition GxRenderDevice.h:2641
GxColor _clearColor
クリア色
Definition GxRenderDevice.h:2643
f32 _clearZ
クリアZ値
Definition GxRenderDevice.h:2644
u32 _clearFlags
クリアフラグ
Definition GxRenderDevice.h:2642
u32 _clearStencil
クリアステンシル値
Definition GxRenderDevice.h:2645
深度ステンシルコピーコマンド
Definition GxRenderDevice.h:2676
u16 _reserve
予備
Definition GxRenderDevice.h:2677
GxRenderTexture * _pTexture
描画テクスチャ
Definition GxRenderDevice.h:2679
u16 _dstMipLevel
出力ミップレベル
Definition GxRenderDevice.h:2678
const GxRect * _pSrcRect
入力矩形アドレス
Definition GxRenderDevice.h:2680
GxPoint2 _dstPoint
出力座標
Definition GxRenderDevice.h:2682
GxRect _srcRect
入力矩形
Definition GxRenderDevice.h:2681
深度ステンシル拡大/縮小コピーコマンド
Definition GxRenderDevice.h:2703
GxRenderTexture * _pTexture
描画テクスチャ
Definition GxRenderDevice.h:2706
const GxRect * _pSrcRect
入力矩形アドレス
Definition GxRenderDevice.h:2707
const GxRect * _pDstRect
出力矩形アドレス
Definition GxRenderDevice.h:2708
u16 _reserve
予備
Definition GxRenderDevice.h:2704
GxRect _srcRect
入力矩形
Definition GxRenderDevice.h:2709
u16 _dstMipLevel
出力ミップレベル
Definition GxRenderDevice.h:2705
GxRect _dstRect
出力矩形
Definition GxRenderDevice.h:2710
レンダーターゲットコピーコマンド
Definition GxRenderDevice.h:2663
GxRenderTexture * _pTexture
描画テクスチャ
Definition GxRenderDevice.h:2666
GxPoint2 _dstPoint
出力座標
Definition GxRenderDevice.h:2669
GxRect _srcRect
入力矩形
Definition GxRenderDevice.h:2668
const GxRect * _pSrcRect
入力矩形アドレス
Definition GxRenderDevice.h:2667
u16 _dstMipLevel
出力先ミップレベル
Definition GxRenderDevice.h:2665
u16 _index
インデックス
Definition GxRenderDevice.h:2664
レンダーターゲット拡大/縮小コピーコマンド
Definition GxRenderDevice.h:2689
u16 _index
インデックス
Definition GxRenderDevice.h:2690
GxRect _dstRect
出力矩形
Definition GxRenderDevice.h:2696
GxRect _srcRect
入力矩形
Definition GxRenderDevice.h:2695
const GxRect * _pDstRect
出力矩形アドレス
Definition GxRenderDevice.h:2694
const GxRect * _pSrcRect
入力矩形アドレス
Definition GxRenderDevice.h:2693
u16 _dstMipLevel
出力ミップレベル
Definition GxRenderDevice.h:2691
GxRenderTexture * _pTexture
描画テクスチャ
Definition GxRenderDevice.h:2692
レンダーターゲットミップマップコピーコマンド
Definition GxRenderDevice.h:2717
GxRenderTexture * _pTexture
描画テクスチャ
Definition GxRenderDevice.h:2719
u32 _index
インデックス
Definition GxRenderDevice.h:2718
インデックスなし描画コマンド
Definition GxRenderDevice.h:2564
RENDER_PRIMITIVE_TYPE _type
プリミティブタイプ
Definition GxRenderDevice.h:2566
u32 _vertexCount
頂点数
Definition GxRenderDevice.h:2568
u32 _startVertex
開始頂点
Definition GxRenderDevice.h:2567
GxVertexStream _vertexStream[RENDER_VERTEX_STREAM_COUNT_MAX]
頂点ストリーム
Definition GxRenderDevice.h:2565
インデックスあり描画コマンド
Definition GxRenderDevice.h:2575
s32 _baseVertexIndex
基準頂点インデックス
Definition GxRenderDevice.h:2579
s32 * _pQueryIndex
クエリインデックスのアドレス
Definition GxRenderDevice.h:2585
u32 _indexCount
インデックス数
Definition GxRenderDevice.h:2583
u32 _startIndex
開始インデックス
Definition GxRenderDevice.h:2582
GxRenderIndexBuffer * _pIndexBuffer
インデックスバッファ
Definition GxRenderDevice.h:2577
u32 _instanceCount
インスタンス数
Definition GxRenderDevice.h:2584
u32 _vertexCount
頂点数
Definition GxRenderDevice.h:2581
GxVertexStream _vertexStream[RENDER_VERTEX_STREAM_COUNT_MAX]
頂点ストリーム
Definition GxRenderDevice.h:2576
u32 _minIndex
最小インデックス
Definition GxRenderDevice.h:2580
RENDER_PRIMITIVE_TYPE _type
プリミティブタイプ
Definition GxRenderDevice.h:2578
インデックスあり描画(メインメモリ)コマンド
Definition GxRenderDevice.h:2603
const void * _pVertex
頂点データ
Definition GxRenderDevice.h:2608
u32 _minIndex
最小インデックス
Definition GxRenderDevice.h:2605
RENDER_INDEX_TYPE _indexType
インデックスタイプ
Definition GxRenderDevice.h:2611
u32 _vertexCount
頂点数
Definition GxRenderDevice.h:2606
u32 _vertexStride
頂点ストライド
Definition GxRenderDevice.h:2610
RENDER_PRIMITIVE_TYPE _type
プリミティブタイプ
Definition GxRenderDevice.h:2604
const void * _pIndex
インデックスデータ
Definition GxRenderDevice.h:2609
u32 _indexCount
インデックス数
Definition GxRenderDevice.h:2607
インデックスなし描画(メインメモリ)コマンド
Definition GxRenderDevice.h:2592
u32 _vertexStride
頂点ストライド
Definition GxRenderDevice.h:2596
u32 _vertexCount
頂点数
Definition GxRenderDevice.h:2594
RENDER_PRIMITIVE_TYPE _type
プリミティブタイプ
Definition GxRenderDevice.h:2593
const void * _pVertex
頂点データ
Definition GxRenderDevice.h:2595
マーカー終了
Definition GxRenderDevice.h:2742
GX_CHAR _name[RENDER_MARKER_NAME_LENGTH+1]
マーカー名
Definition GxRenderDevice.h:2743
描画ステート強制変更コマンド
Definition GxRenderDevice.h:2546
頂点ストリームステート強制変更コマンド
Definition GxRenderDevice.h:2554
u32 _stride
ストライド
Definition GxRenderDevice.h:2556
u32 _stream
ストリーム
Definition GxRenderDevice.h:2555
u32 _frequency
頻度
Definition GxRenderDevice.h:2557
アルファテストステート設定コマンド
Definition GxRenderDevice.h:2495
GxRenderAlphaTestState _state
ステート
Definition GxRenderDevice.h:2496
ブレンドステート設定コマンド
Definition GxRenderDevice.h:2503
GxRenderBlendState _state
ステート
Definition GxRenderDevice.h:2504
深度ステンシル設定コマンド
Definition GxRenderDevice.h:2537
b32 _readOnly
読み込み専用
Definition GxRenderDevice.h:2539
GxRenderTexture * _pDepthStencil
深度ステンシル
Definition GxRenderDevice.h:2538
Zテストステート設定コマンド
Definition GxRenderDevice.h:2477
GxRenderDepthTestState _state
ステート
Definition GxRenderDevice.h:2478
プレディケーション設定コマンド
Definition GxRenderDevice.h:2760
u32 _size
サイズ
Definition GxRenderDevice.h:2762
b32 _value
値
Definition GxRenderDevice.h:2763
void * _pFlag
フラグ
Definition GxRenderDevice.h:2761
描画ステート設定コマンド
Definition GxRenderDevice.h:2468
RENDER_STATE _renderState
レンダーステート
Definition GxRenderDevice.h:2469
u32 _value
値
Definition GxRenderDevice.h:2470
レンダーターゲット設定コマンド
Definition GxRenderDevice.h:2527
u32 _index
インデックス
Definition GxRenderDevice.h:2528
GxRenderTexture * _pRenderTarget
レンダーターゲット
Definition GxRenderDevice.h:2529
b32 _forceRenderToTexture
テクスチャ強制描画
Definition GxRenderDevice.h:2530
シザリング矩形設定コマンド
Definition GxRenderDevice.h:2519
GxRect _rect
矩形
Definition GxRenderDevice.h:2520
ステンシルテストステート設定コマンド
Definition GxRenderDevice.h:2485
GxRenderStencilTestState _state
ステート
Definition GxRenderDevice.h:2486
b32 _stencilTwoSideEnable
2方向の有効フラグ
Definition GxRenderDevice.h:2488
u32 _stencilRef
ステート参照
Definition GxRenderDevice.h:2487
ビューポート設定コマンド
Definition GxRenderDevice.h:2511
GxViewportData _viewportData
ビューポート情報
Definition GxRenderDevice.h:2512
描画パケット
Definition GxRenderDevice.h:2427
GxPriority::GxPriorityUnion _priority
優先度
Definition GxRenderDevice.h:2428
GxCommandInformation * _pCommandInfo
コマンド情報のポインタ
Definition GxRenderDevice.h:2429
レジスタセット情報
Definition GxRenderDevice.h:2449
GxRenderShader * _pShader
シェーダー
Definition GxRenderDevice.h:2450
GxRegisterInformation * _pRegisterInformation[static_cast< s32 >(GxRenderShader::REGISTER_SET_TYPE::MAX)]
レジスタ情報
Definition GxRenderDevice.h:2451
u8 _registerInformationCount[static_cast< s32 >(GxRenderShader::REGISTER_SET_TYPE::MAX)]
レジスタ情報数
Definition GxRenderDevice.h:2452
頂点ストリーム情報
Definition GxRenderDevice.h:480
u64 _access64
データ
Definition GxRenderDevice.h:490
u16 _offset
オフセット
Definition GxRenderDevice.h:486
GxRenderVertexBuffer * _pVertexBuffer
頂点バッファ
Definition GxRenderDevice.h:485
u8 _stride
ストライド
Definition GxRenderDevice.h:487
u8 _frequencyType
頻度タイプ
Definition GxRenderDevice.h:488
ビューポートデータ
Definition GxRenderDevice.h:588
GxRect _rect
矩形
Definition GxRenderDevice.h:589
f32 _farZ
farクリップ
Definition GxRenderDevice.h:591
f32 _nearZ
nearクリップ
Definition GxRenderDevice.h:590
サンプラステート
Definition GxRender.h:1046
ステンシルテストステート
Definition GxRender.h:654
頂点宣言に使用する、頂点要素を定義するための構造体
Definition GxRenderVertexDeclaration.h:125
Definition GxSharedContext.h:21
サイズ
Definition GxStruct.h:730
文字列型クラス
Definition GxString.h:18
2次元ベクトル
Definition GxVector.h:34
3次元ベクトル
Definition GxVector.h:245
4次元ベクトル
Definition GxVector.h:582
32bitブーリアン
Definition GxDefine.h:173
描画優先度
Definition GxRenderDevice.h:505
u32 _subPriority
サブプライオリティ
Definition GxRenderDevice.h:519
priorityType _priorityValue
プライオリティ64Bitアクセス
Definition GxRenderDevice.h:522
u32 _reserved
予備
Definition GxRenderDevice.h:515
RENDER_VIEW _view
ビュー
Definition GxRenderDevice.h:516
RENDER_PASS _pass
パス
Definition GxRenderDevice.h:518
RENDER_SUB_VIEW _subView
サブビュー
Definition GxRenderDevice.h:517