disallow implicitly threaded rendering commands part2
This commit is contained in:
@@ -108,12 +108,12 @@ void DeferredRenderableComponent::Render()
|
||||
}
|
||||
else
|
||||
{
|
||||
RenderFrameSetUp();
|
||||
RenderShadows();
|
||||
RenderReflections();
|
||||
RenderScene();
|
||||
RenderSecondaryScene(rtGBuffer, GetFinalRT());
|
||||
RenderComposition(GetFinalRT(), rtGBuffer);
|
||||
RenderFrameSetUp(GRAPHICSTHREAD_IMMEDIATE);
|
||||
RenderShadows(GRAPHICSTHREAD_IMMEDIATE);
|
||||
RenderReflections(GRAPHICSTHREAD_IMMEDIATE);
|
||||
RenderScene(GRAPHICSTHREAD_IMMEDIATE);
|
||||
RenderSecondaryScene(rtGBuffer, GetFinalRT(), GRAPHICSTHREAD_IMMEDIATE);
|
||||
RenderComposition(GetFinalRT(), rtGBuffer, GRAPHICSTHREAD_IMMEDIATE);
|
||||
}
|
||||
|
||||
Renderable2DComponent::Render();
|
||||
|
||||
@@ -10,7 +10,7 @@ protected:
|
||||
|
||||
virtual void ResizeBuffers();
|
||||
|
||||
virtual void RenderScene(GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) override;
|
||||
virtual void RenderScene(GRAPHICSTHREAD threadID) override;
|
||||
wiRenderTarget& GetFinalRT();
|
||||
|
||||
public:
|
||||
|
||||
@@ -102,7 +102,7 @@ void EditorLoadingScreen::Compose()
|
||||
__super::Compose();
|
||||
|
||||
wiFont("Loading...", wiFontProps(wiRenderer::GetDevice()->GetScreenWidth() / 2, wiRenderer::GetDevice()->GetScreenHeight() / 2, 50,
|
||||
WIFALIGN_MID, WIFALIGN_MID)).Draw();
|
||||
WIFALIGN_MID, WIFALIGN_MID)).Draw(GRAPHICSTHREAD_IMMEDIATE);
|
||||
}
|
||||
void EditorLoadingScreen::Unload()
|
||||
{
|
||||
|
||||
@@ -84,12 +84,12 @@ void ForwardRenderableComponent::Render()
|
||||
}
|
||||
else
|
||||
{
|
||||
RenderFrameSetUp();
|
||||
RenderShadows();
|
||||
RenderReflections();
|
||||
RenderScene();
|
||||
RenderSecondaryScene(rtMain, rtMain);
|
||||
RenderComposition(rtMain, rtMain);
|
||||
RenderFrameSetUp(GRAPHICSTHREAD_IMMEDIATE);
|
||||
RenderShadows(GRAPHICSTHREAD_IMMEDIATE);
|
||||
RenderReflections(GRAPHICSTHREAD_IMMEDIATE);
|
||||
RenderScene(GRAPHICSTHREAD_IMMEDIATE);
|
||||
RenderSecondaryScene(rtMain, rtMain, GRAPHICSTHREAD_IMMEDIATE);
|
||||
RenderComposition(rtMain, rtMain, GRAPHICSTHREAD_IMMEDIATE);
|
||||
}
|
||||
|
||||
Renderable2DComponent::Render();
|
||||
|
||||
@@ -11,7 +11,7 @@ protected:
|
||||
|
||||
virtual void ResizeBuffers();
|
||||
|
||||
virtual void RenderScene(GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) override;
|
||||
virtual void RenderScene(GRAPHICSTHREAD threadID) override;
|
||||
public:
|
||||
ForwardRenderableComponent();
|
||||
virtual ~ForwardRenderableComponent();
|
||||
|
||||
@@ -176,7 +176,7 @@ void MainComponent::Compose()
|
||||
fx.siz.x = (float)wiRenderer::GetDevice()->GetScreenWidth();
|
||||
fx.siz.y = (float)wiRenderer::GetDevice()->GetScreenHeight();
|
||||
fx.opacity = fadeManager.opacity;
|
||||
wiImage::Draw(wiTextureHelper::getInstance()->getColor(fadeManager.color), fx);
|
||||
wiImage::Draw(wiTextureHelper::getInstance()->getColor(fadeManager.color), fx, GRAPHICSTHREAD_IMMEDIATE);
|
||||
}
|
||||
|
||||
// Draw the information display
|
||||
@@ -215,7 +215,7 @@ void MainComponent::Compose()
|
||||
ss << endl;
|
||||
}
|
||||
ss.precision(2);
|
||||
wiFont(ss.str(), wiFontProps(4, 4, infoDisplay.size, WIFALIGN_LEFT, WIFALIGN_TOP, 2, 1, wiColor(255,255,255,255), wiColor(0,0,0,255))).Draw();
|
||||
wiFont(ss.str(), wiFontProps(4, 4, infoDisplay.size, WIFALIGN_LEFT, WIFALIGN_TOP, 2, 1, wiColor(255,255,255,255), wiColor(0,0,0,255))).Draw(GRAPHICSTHREAD_IMMEDIATE);
|
||||
}
|
||||
|
||||
wiProfiler::GetInstance().DrawData(4, 120, GRAPHICSTHREAD_IMMEDIATE);
|
||||
@@ -224,8 +224,8 @@ void MainComponent::Compose()
|
||||
if (colorGradingPaletteDisplayEnabled)
|
||||
{
|
||||
//wiImage::BatchBegin();
|
||||
wiImage::Draw(wiTextureHelper::getInstance()->getColorGradeDefault(), wiImageEffects(0, 0, 256, 16));
|
||||
wiImage::Draw(wiRenderer::GetColorGrading(), wiImageEffects(screenW-256.f, 0, 256, 16));
|
||||
wiImage::Draw(wiTextureHelper::getInstance()->getColorGradeDefault(), wiImageEffects(0, 0, 256, 16), GRAPHICSTHREAD_IMMEDIATE);
|
||||
wiImage::Draw(wiRenderer::GetColorGrading(), wiImageEffects(screenW-256.f, 0, 256, 16), GRAPHICSTHREAD_IMMEDIATE);
|
||||
}
|
||||
|
||||
wiBackLog::Draw();
|
||||
|
||||
@@ -120,7 +120,7 @@ void Renderable2DComponent::Render()
|
||||
}
|
||||
if (y.font != nullptr)
|
||||
{
|
||||
y.font->Draw();
|
||||
y.font->Draw(GRAPHICSTHREAD_IMMEDIATE);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -135,7 +135,7 @@ void Renderable2DComponent::Compose()
|
||||
wiImageEffects fx((float)wiRenderer::GetDevice()->GetScreenWidth(), (float)wiRenderer::GetDevice()->GetScreenHeight());
|
||||
fx.presentFullScreen = true;
|
||||
|
||||
wiImage::Draw(rtFinal.GetTexture(), fx);
|
||||
wiImage::Draw(rtFinal.GetTexture(), fx, GRAPHICSTHREAD_IMMEDIATE);
|
||||
|
||||
RenderableComponent::Compose();
|
||||
}
|
||||
|
||||
@@ -244,7 +244,7 @@ void Renderable3DComponent::Compose()
|
||||
|
||||
if (wiRenderer::GetDebugLightCulling())
|
||||
{
|
||||
wiImage::Draw((Texture2D*)wiRenderer::textures[TEXTYPE_2D_DEBUGUAV], wiImageEffects((float)wiRenderer::GetDevice()->GetScreenWidth(), (float)wiRenderer::GetDevice()->GetScreenHeight()));
|
||||
wiImage::Draw((Texture2D*)wiRenderer::textures[TEXTYPE_2D_DEBUGUAV], wiImageEffects((float)wiRenderer::GetDevice()->GetScreenWidth(), (float)wiRenderer::GetDevice()->GetScreenHeight()), GRAPHICSTHREAD_IMMEDIATE);
|
||||
}
|
||||
|
||||
Renderable2DComponent::Compose();
|
||||
@@ -654,7 +654,7 @@ void Renderable3DComponent::RenderColorGradedComposition()
|
||||
fx.presentFullScreen = false;
|
||||
fx.process.clear();
|
||||
fx.process.setStereogram(true);
|
||||
wiImage::Draw(wiTextureHelper::getInstance()->getRandom64x64(), fx);
|
||||
wiImage::Draw(wiTextureHelper::getInstance()->getRandom64x64(), fx, GRAPHICSTHREAD_IMMEDIATE);
|
||||
wiRenderer::GetDevice()->EventEnd(GRAPHICSTHREAD_IMMEDIATE);
|
||||
return;
|
||||
}
|
||||
@@ -680,11 +680,11 @@ void Renderable3DComponent::RenderColorGradedComposition()
|
||||
|
||||
if (getSharpenFilterEnabled())
|
||||
{
|
||||
wiImage::Draw(rtFinal[0].GetTexture(), fx);
|
||||
wiImage::Draw(rtFinal[0].GetTexture(), fx, GRAPHICSTHREAD_IMMEDIATE);
|
||||
}
|
||||
else
|
||||
{
|
||||
wiImage::Draw(rtFinal[1].GetTexture(), fx);
|
||||
wiImage::Draw(rtFinal[1].GetTexture(), fx, GRAPHICSTHREAD_IMMEDIATE);
|
||||
}
|
||||
wiRenderer::GetDevice()->EventEnd(GRAPHICSTHREAD_IMMEDIATE);
|
||||
}
|
||||
|
||||
@@ -71,13 +71,13 @@ protected:
|
||||
|
||||
std::vector<wiTaskThread*> workerThreads;
|
||||
|
||||
virtual void RenderFrameSetUp(GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE);
|
||||
virtual void RenderReflections(GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE);
|
||||
virtual void RenderShadows(GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE);
|
||||
virtual void RenderScene(GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) = 0;
|
||||
virtual void RenderSecondaryScene(wiRenderTarget& mainRT, wiRenderTarget& shadedSceneRT, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE);
|
||||
virtual void RenderTransparentScene(wiRenderTarget& refractionRT, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE);
|
||||
virtual void RenderComposition(wiRenderTarget& shadedSceneRT, wiRenderTarget& mainRT, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE);
|
||||
virtual void RenderFrameSetUp(GRAPHICSTHREAD threadID);
|
||||
virtual void RenderReflections(GRAPHICSTHREAD threadID);
|
||||
virtual void RenderShadows(GRAPHICSTHREAD threadID);
|
||||
virtual void RenderScene(GRAPHICSTHREAD threadID) = 0;
|
||||
virtual void RenderSecondaryScene(wiRenderTarget& mainRT, wiRenderTarget& shadedSceneRT, GRAPHICSTHREAD threadID);
|
||||
virtual void RenderTransparentScene(wiRenderTarget& refractionRT, GRAPHICSTHREAD threadID);
|
||||
virtual void RenderComposition(wiRenderTarget& shadedSceneRT, wiRenderTarget& mainRT, GRAPHICSTHREAD threadID);
|
||||
virtual void RenderColorGradedComposition();
|
||||
public:
|
||||
inline float getLightShaftQuality(){ return lightShaftQuality; }
|
||||
|
||||
@@ -5,8 +5,8 @@ class TiledForwardRenderableComponent :
|
||||
public ForwardRenderableComponent
|
||||
{
|
||||
private:
|
||||
virtual void RenderScene(GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) override;
|
||||
virtual void RenderTransparentScene(wiRenderTarget& refractionRT, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) override;
|
||||
virtual void RenderScene(GRAPHICSTHREAD threadID) override;
|
||||
virtual void RenderTransparentScene(wiRenderTarget& refractionRT, GRAPHICSTHREAD threadID) override;
|
||||
public:
|
||||
TiledForwardRenderableComponent();
|
||||
virtual ~TiledForwardRenderableComponent();
|
||||
|
||||
@@ -70,11 +70,11 @@ void wiBackLog::Draw(){
|
||||
wiImageEffects fx = wiImageEffects((float)wiRenderer::GetDevice()->GetScreenWidth(), (float)wiRenderer::GetDevice()->GetScreenHeight());
|
||||
fx.pos=XMFLOAT3(0,pos,0);
|
||||
fx.opacity = wiMath::Lerp(1, 0, -pos / wiRenderer::GetDevice()->GetScreenHeight());
|
||||
wiImage::Draw(backgroundTex, fx);
|
||||
wiImage::Draw(backgroundTex, fx, GRAPHICSTHREAD_IMMEDIATE);
|
||||
font.SetText(getText());
|
||||
font.props.posY = wiRenderer::GetDevice()->GetScreenHeight() - 75 + (int)pos + (int)scroll;
|
||||
font.Draw();
|
||||
wiFont(inputArea.str().c_str(), wiFontProps(5, wiRenderer::GetDevice()->GetScreenHeight() - 10, -1, WIFALIGN_LEFT, WIFALIGN_BOTTOM)).Draw();
|
||||
font.Draw(GRAPHICSTHREAD_IMMEDIATE);
|
||||
wiFont(inputArea.str().c_str(), wiFontProps(5, wiRenderer::GetDevice()->GetScreenHeight() - 10, -1, WIFALIGN_LEFT, WIFALIGN_BOTTOM)).Draw(GRAPHICSTHREAD_IMMEDIATE);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -103,7 +103,7 @@ public:
|
||||
~wiFont();
|
||||
|
||||
|
||||
void Draw(GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE, bool scissorTest = false);
|
||||
void Draw(GRAPHICSTHREAD threadID, bool scissorTest = false);
|
||||
|
||||
|
||||
int textWidth();
|
||||
|
||||
@@ -85,71 +85,71 @@ namespace wiGraphicsTypes
|
||||
|
||||
///////////////Thread-sensitive////////////////////////
|
||||
|
||||
virtual void BindViewports(UINT NumViewports, const ViewPort *pViewports, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) = 0;
|
||||
virtual void BindViewports(UINT NumViewports, const ViewPort *pViewports, GRAPHICSTHREAD threadID) = 0;
|
||||
virtual void BindRenderTargetsUAVs(UINT NumViews, Texture* const *ppRenderTargets, Texture2D* depthStencilTexture, GPUUnorderedResource* const *ppUAVs, int slotUAV, int countUAV,
|
||||
GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE, int arrayIndex = -1) = 0;
|
||||
virtual void BindRenderTargets(UINT NumViews, Texture* const *ppRenderTargets, Texture2D* depthStencilTexture, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE, int arrayIndex = -1) = 0;
|
||||
virtual void ClearRenderTarget(Texture* pTexture, const FLOAT ColorRGBA[4], GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE, int arrayIndex = -1) = 0;
|
||||
virtual void ClearDepthStencil(Texture2D* pTexture, UINT ClearFlags, FLOAT Depth, UINT8 Stencil, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE, int arrayIndex = -1) = 0;
|
||||
virtual void BindResourcePS(const GPUResource* resource, int slot, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE, int arrayIndex = -1) = 0;
|
||||
virtual void BindResourceVS(const GPUResource* resource, int slot, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE, int arrayIndex = -1) = 0;
|
||||
virtual void BindResourceGS(const GPUResource* resource, int slot, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE, int arrayIndex = -1) = 0;
|
||||
virtual void BindResourceDS(const GPUResource* resource, int slot, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE, int arrayIndex = -1) = 0;
|
||||
virtual void BindResourceHS(const GPUResource* resource, int slot, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE, int arrayIndex = -1) = 0;
|
||||
virtual void BindResourceCS(const GPUResource* resource, int slot, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE, int arrayIndex = -1) = 0;
|
||||
virtual void BindUnorderedAccessResourceCS(const GPUUnorderedResource* buffer, int slot, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE, int arrayIndex = -1) = 0;
|
||||
virtual void UnBindResources(int slot, int num, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) = 0;
|
||||
virtual void UnBindUnorderedAccessResources(int slot, int num, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) = 0;
|
||||
virtual void BindSamplerPS(const Sampler* sampler, int slot, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) = 0;
|
||||
virtual void BindSamplerVS(const Sampler* sampler, int slot, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) = 0;
|
||||
virtual void BindSamplerGS(const Sampler* sampler, int slot, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) = 0;
|
||||
virtual void BindSamplerHS(const Sampler* sampler, int slot, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) = 0;
|
||||
virtual void BindSamplerDS(const Sampler* sampler, int slot, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) = 0;
|
||||
virtual void BindSamplerCS(const Sampler* sampler, int slot, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) = 0;
|
||||
virtual void BindConstantBufferPS(const GPUBuffer* buffer, int slot, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) = 0;
|
||||
virtual void BindConstantBufferVS(const GPUBuffer* buffer, int slot, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) = 0;
|
||||
virtual void BindConstantBufferGS(const GPUBuffer* buffer, int slot, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) = 0;
|
||||
virtual void BindConstantBufferDS(const GPUBuffer* buffer, int slot, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) = 0;
|
||||
virtual void BindConstantBufferHS(const GPUBuffer* buffer, int slot, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) = 0;
|
||||
virtual void BindConstantBufferCS(const GPUBuffer* buffer, int slot, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) = 0;
|
||||
virtual void BindVertexBuffer(const GPUBuffer* vertexBuffer, int slot, UINT stride, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) = 0;
|
||||
virtual void BindVertexBuffers(GPUBuffer* const *vertexBuffers, int slot, UINT count, const UINT* strides, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) = 0;
|
||||
virtual void BindIndexBuffer(const GPUBuffer* indexBuffer, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) = 0;
|
||||
virtual void BindPrimitiveTopology(PRIMITIVETOPOLOGY type, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) = 0;
|
||||
virtual void BindVertexLayout(const VertexLayout* layout, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) = 0;
|
||||
virtual void BindBlendState(const BlendState* state, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) = 0;
|
||||
virtual void BindBlendStateEx(const BlendState* state, const XMFLOAT4& blendFactor = XMFLOAT4(1, 1, 1, 1), UINT sampleMask = 0xffffffff, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) = 0;
|
||||
virtual void BindDepthStencilState(const DepthStencilState* state, UINT stencilRef, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) = 0;
|
||||
virtual void BindRasterizerState(const RasterizerState* state, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) = 0;
|
||||
virtual void BindStreamOutTarget(const GPUBuffer* buffer, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) = 0;
|
||||
virtual void BindStreamOutTargets(GPUBuffer* const *buffers, UINT count, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) = 0;
|
||||
virtual void BindPS(const PixelShader* shader, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) = 0;
|
||||
virtual void BindVS(const VertexShader* shader, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) = 0;
|
||||
virtual void BindGS(const GeometryShader* shader, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) = 0;
|
||||
virtual void BindHS(const HullShader* shader, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) = 0;
|
||||
virtual void BindDS(const DomainShader* shader, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) = 0;
|
||||
virtual void BindCS(const ComputeShader* shader, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) = 0;
|
||||
virtual void Draw(int vertexCount, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) = 0;
|
||||
virtual void DrawIndexed(int indexCount, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) = 0;
|
||||
virtual void DrawInstanced(int vertexCount, int instanceCount, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) = 0;
|
||||
virtual void DrawIndexedInstanced(int indexCount, int instanceCount, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) = 0;
|
||||
virtual void Dispatch(UINT threadGroupCountX, UINT threadGroupCountY, UINT threadGroupCountZ, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) = 0;
|
||||
virtual void GenerateMips(Texture* texture, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) = 0;
|
||||
virtual void CopyTexture2D(Texture2D* pDst, const Texture2D* pSrc, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) = 0;
|
||||
virtual void CopyTexture2D_Region(Texture2D* pDst, UINT dstMip, UINT dstX, UINT dstY, const Texture2D* pSrc, UINT srcMip, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) = 0;
|
||||
virtual void MSAAResolve(Texture2D* pDst, const Texture2D* pSrc, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) = 0;
|
||||
virtual void UpdateBuffer(GPUBuffer* buffer, const void* data, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE, int dataSize = -1) = 0;
|
||||
virtual GPUBuffer* DownloadBuffer(GPUBuffer* buffer, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) = 0;
|
||||
virtual void Map(GPUBuffer* resource, UINT subResource, MAP mapType, UINT mapFlags, MappedSubresource* mappedResource, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) = 0;
|
||||
virtual void Unmap(GPUBuffer* resource, UINT subResource = 0, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) = 0;
|
||||
virtual void SetScissorRects(UINT numRects, const Rect* rects = nullptr, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) = 0;
|
||||
virtual void QueryBegin(GPUQuery *query, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) = 0;
|
||||
virtual void QueryEnd(GPUQuery *query, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) = 0;
|
||||
virtual bool QueryRead(GPUQuery *query, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) = 0;
|
||||
GRAPHICSTHREAD threadID, int arrayIndex = -1) = 0;
|
||||
virtual void BindRenderTargets(UINT NumViews, Texture* const *ppRenderTargets, Texture2D* depthStencilTexture, GRAPHICSTHREAD threadID, int arrayIndex = -1) = 0;
|
||||
virtual void ClearRenderTarget(Texture* pTexture, const FLOAT ColorRGBA[4], GRAPHICSTHREAD threadID, int arrayIndex = -1) = 0;
|
||||
virtual void ClearDepthStencil(Texture2D* pTexture, UINT ClearFlags, FLOAT Depth, UINT8 Stencil, GRAPHICSTHREAD threadID, int arrayIndex = -1) = 0;
|
||||
virtual void BindResourcePS(const GPUResource* resource, int slot, GRAPHICSTHREAD threadID, int arrayIndex = -1) = 0;
|
||||
virtual void BindResourceVS(const GPUResource* resource, int slot, GRAPHICSTHREAD threadID, int arrayIndex = -1) = 0;
|
||||
virtual void BindResourceGS(const GPUResource* resource, int slot, GRAPHICSTHREAD threadID, int arrayIndex = -1) = 0;
|
||||
virtual void BindResourceDS(const GPUResource* resource, int slot, GRAPHICSTHREAD threadID, int arrayIndex = -1) = 0;
|
||||
virtual void BindResourceHS(const GPUResource* resource, int slot, GRAPHICSTHREAD threadID, int arrayIndex = -1) = 0;
|
||||
virtual void BindResourceCS(const GPUResource* resource, int slot, GRAPHICSTHREAD threadID, int arrayIndex = -1) = 0;
|
||||
virtual void BindUnorderedAccessResourceCS(const GPUUnorderedResource* buffer, int slot, GRAPHICSTHREAD threadID, int arrayIndex = -1) = 0;
|
||||
virtual void UnBindResources(int slot, int num, GRAPHICSTHREAD threadID) = 0;
|
||||
virtual void UnBindUnorderedAccessResources(int slot, int num, GRAPHICSTHREAD threadID) = 0;
|
||||
virtual void BindSamplerPS(const Sampler* sampler, int slot, GRAPHICSTHREAD threadID) = 0;
|
||||
virtual void BindSamplerVS(const Sampler* sampler, int slot, GRAPHICSTHREAD threadID) = 0;
|
||||
virtual void BindSamplerGS(const Sampler* sampler, int slot, GRAPHICSTHREAD threadID) = 0;
|
||||
virtual void BindSamplerHS(const Sampler* sampler, int slot, GRAPHICSTHREAD threadID) = 0;
|
||||
virtual void BindSamplerDS(const Sampler* sampler, int slot, GRAPHICSTHREAD threadID) = 0;
|
||||
virtual void BindSamplerCS(const Sampler* sampler, int slot, GRAPHICSTHREAD threadID) = 0;
|
||||
virtual void BindConstantBufferPS(const GPUBuffer* buffer, int slot, GRAPHICSTHREAD threadID) = 0;
|
||||
virtual void BindConstantBufferVS(const GPUBuffer* buffer, int slot, GRAPHICSTHREAD threadID) = 0;
|
||||
virtual void BindConstantBufferGS(const GPUBuffer* buffer, int slot, GRAPHICSTHREAD threadID) = 0;
|
||||
virtual void BindConstantBufferDS(const GPUBuffer* buffer, int slot, GRAPHICSTHREAD threadID) = 0;
|
||||
virtual void BindConstantBufferHS(const GPUBuffer* buffer, int slot, GRAPHICSTHREAD threadID) = 0;
|
||||
virtual void BindConstantBufferCS(const GPUBuffer* buffer, int slot, GRAPHICSTHREAD threadID) = 0;
|
||||
virtual void BindVertexBuffer(const GPUBuffer* vertexBuffer, int slot, UINT stride, GRAPHICSTHREAD threadID) = 0;
|
||||
virtual void BindVertexBuffers(GPUBuffer* const *vertexBuffers, int slot, UINT count, const UINT* strides, GRAPHICSTHREAD threadID) = 0;
|
||||
virtual void BindIndexBuffer(const GPUBuffer* indexBuffer, GRAPHICSTHREAD threadID) = 0;
|
||||
virtual void BindPrimitiveTopology(PRIMITIVETOPOLOGY type, GRAPHICSTHREAD threadID) = 0;
|
||||
virtual void BindVertexLayout(const VertexLayout* layout, GRAPHICSTHREAD threadID) = 0;
|
||||
virtual void BindBlendState(const BlendState* state, GRAPHICSTHREAD threadID) = 0;
|
||||
virtual void BindBlendStateEx(const BlendState* state, const XMFLOAT4& blendFactor, UINT sampleMask, GRAPHICSTHREAD threadID) = 0;
|
||||
virtual void BindDepthStencilState(const DepthStencilState* state, UINT stencilRef, GRAPHICSTHREAD threadID) = 0;
|
||||
virtual void BindRasterizerState(const RasterizerState* state, GRAPHICSTHREAD threadID) = 0;
|
||||
virtual void BindStreamOutTarget(const GPUBuffer* buffer, GRAPHICSTHREAD threadID) = 0;
|
||||
virtual void BindStreamOutTargets(GPUBuffer* const *buffers, UINT count, GRAPHICSTHREAD threadID) = 0;
|
||||
virtual void BindPS(const PixelShader* shader, GRAPHICSTHREAD threadID) = 0;
|
||||
virtual void BindVS(const VertexShader* shader, GRAPHICSTHREAD threadID) = 0;
|
||||
virtual void BindGS(const GeometryShader* shader, GRAPHICSTHREAD threadID) = 0;
|
||||
virtual void BindHS(const HullShader* shader, GRAPHICSTHREAD threadID) = 0;
|
||||
virtual void BindDS(const DomainShader* shader, GRAPHICSTHREAD threadID) = 0;
|
||||
virtual void BindCS(const ComputeShader* shader, GRAPHICSTHREAD threadID) = 0;
|
||||
virtual void Draw(int vertexCount, GRAPHICSTHREAD threadID) = 0;
|
||||
virtual void DrawIndexed(int indexCount, GRAPHICSTHREAD threadID) = 0;
|
||||
virtual void DrawInstanced(int vertexCount, int instanceCount, GRAPHICSTHREAD threadID) = 0;
|
||||
virtual void DrawIndexedInstanced(int indexCount, int instanceCount, GRAPHICSTHREAD threadID) = 0;
|
||||
virtual void Dispatch(UINT threadGroupCountX, UINT threadGroupCountY, UINT threadGroupCountZ, GRAPHICSTHREAD threadID) = 0;
|
||||
virtual void GenerateMips(Texture* texture, GRAPHICSTHREAD threadID) = 0;
|
||||
virtual void CopyTexture2D(Texture2D* pDst, const Texture2D* pSrc, GRAPHICSTHREAD threadID) = 0;
|
||||
virtual void CopyTexture2D_Region(Texture2D* pDst, UINT dstMip, UINT dstX, UINT dstY, const Texture2D* pSrc, UINT srcMip, GRAPHICSTHREAD threadID) = 0;
|
||||
virtual void MSAAResolve(Texture2D* pDst, const Texture2D* pSrc, GRAPHICSTHREAD threadID) = 0;
|
||||
virtual void UpdateBuffer(GPUBuffer* buffer, const void* data, GRAPHICSTHREAD threadID, int dataSize = -1) = 0;
|
||||
virtual GPUBuffer* DownloadBuffer(GPUBuffer* buffer, GRAPHICSTHREAD threadID) = 0;
|
||||
virtual void Map(GPUBuffer* resource, UINT subResource, MAP mapType, UINT mapFlags, MappedSubresource* mappedResource, GRAPHICSTHREAD threadID) = 0;
|
||||
virtual void Unmap(GPUBuffer* resource, UINT subResource, GRAPHICSTHREAD threadID) = 0;
|
||||
virtual void SetScissorRects(UINT numRects, const Rect* rects, GRAPHICSTHREAD threadID) = 0;
|
||||
virtual void QueryBegin(GPUQuery *query, GRAPHICSTHREAD threadID) = 0;
|
||||
virtual void QueryEnd(GPUQuery *query, GRAPHICSTHREAD threadID) = 0;
|
||||
virtual bool QueryRead(GPUQuery *query, GRAPHICSTHREAD threadID) = 0;
|
||||
|
||||
virtual HRESULT CreateTextureFromFile(const std::string& fileName, Texture2D **ppTexture, bool mipMaps = true, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) = 0;
|
||||
virtual HRESULT SaveTexturePNG(const std::string& fileName, Texture2D *pTexture, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) = 0;
|
||||
virtual HRESULT SaveTextureDDS(const std::string& fileName, Texture *pTexture, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) = 0;
|
||||
virtual HRESULT CreateTextureFromFile(const std::string& fileName, Texture2D **ppTexture, bool mipMaps, GRAPHICSTHREAD threadID) = 0;
|
||||
virtual HRESULT SaveTexturePNG(const std::string& fileName, Texture2D *pTexture, GRAPHICSTHREAD threadID) = 0;
|
||||
virtual HRESULT SaveTextureDDS(const std::string& fileName, Texture *pTexture, GRAPHICSTHREAD threadID) = 0;
|
||||
|
||||
virtual void EventBegin(const std::string& name, GRAPHICSTHREAD threadID) = 0;
|
||||
virtual void EventEnd(GRAPHICSTHREAD threadID) = 0;
|
||||
|
||||
@@ -2635,7 +2635,7 @@ void GraphicsDevice_DX11::PresentBegin()
|
||||
{
|
||||
LOCK();
|
||||
|
||||
BindViewports(1, &viewPort);
|
||||
BindViewports(1, &viewPort, GRAPHICSTHREAD_IMMEDIATE);
|
||||
deviceContexts[GRAPHICSTHREAD_IMMEDIATE]->OMSetRenderTargets(1, &renderTargetView, 0);
|
||||
float ClearColor[4] = { 0, 0, 0, 1.0f }; // red,green,blue,alpha
|
||||
deviceContexts[GRAPHICSTHREAD_IMMEDIATE]->ClearRenderTargetView(renderTargetView, ClearColor);
|
||||
|
||||
@@ -5,11 +5,11 @@
|
||||
#include "wiGraphicsDevice.h"
|
||||
#include "wiWindowRegistration.h"
|
||||
|
||||
interface ID3D11Device;
|
||||
interface IDXGISwapChain1;
|
||||
interface ID3D11DeviceContext;
|
||||
interface ID3D11CommandList;
|
||||
interface ID3DUserDefinedAnnotation;
|
||||
struct ID3D11Device;
|
||||
struct IDXGISwapChain1;
|
||||
struct ID3D11DeviceContext;
|
||||
struct ID3D11CommandList;
|
||||
struct ID3DUserDefinedAnnotation;
|
||||
enum D3D_DRIVER_TYPE;
|
||||
enum D3D_FEATURE_LEVEL;
|
||||
|
||||
@@ -67,71 +67,71 @@ namespace wiGraphicsTypes
|
||||
|
||||
///////////////Thread-sensitive////////////////////////
|
||||
|
||||
virtual void BindViewports(UINT NumViewports, const ViewPort *pViewports, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) override;
|
||||
virtual void BindViewports(UINT NumViewports, const ViewPort *pViewports, GRAPHICSTHREAD threadID) override;
|
||||
virtual void BindRenderTargetsUAVs(UINT NumViews, Texture* const *ppRenderTargets, Texture2D* depthStencilTexture, GPUUnorderedResource* const *ppUAVs, int slotUAV, int countUAV,
|
||||
GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE, int arrayIndex = -1) override;
|
||||
virtual void BindRenderTargets(UINT NumViews, Texture* const *ppRenderTargets, Texture2D* depthStencilTexture, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE, int arrayIndex = -1) override;
|
||||
virtual void ClearRenderTarget(Texture* pTexture, const FLOAT ColorRGBA[4], GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE, int arrayIndex = -1) override;
|
||||
virtual void ClearDepthStencil(Texture2D* pTexture, UINT ClearFlags, FLOAT Depth, UINT8 Stencil, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE, int arrayIndex = -1) override;
|
||||
virtual void BindResourcePS(const GPUResource* resource, int slot, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE, int arrayIndex = -1) override;
|
||||
virtual void BindResourceVS(const GPUResource* resource, int slot, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE, int arrayIndex = -1) override;
|
||||
virtual void BindResourceGS(const GPUResource* resource, int slot, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE, int arrayIndex = -1) override;
|
||||
virtual void BindResourceDS(const GPUResource* resource, int slot, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE, int arrayIndex = -1) override;
|
||||
virtual void BindResourceHS(const GPUResource* resource, int slot, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE, int arrayIndex = -1) override;
|
||||
virtual void BindResourceCS(const GPUResource* resource, int slot, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE, int arrayIndex = -1) override;
|
||||
virtual void BindUnorderedAccessResourceCS(const GPUUnorderedResource* buffer, int slot, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE, int arrayIndex = -1) override;
|
||||
virtual void UnBindResources(int slot, int num, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) override;
|
||||
virtual void UnBindUnorderedAccessResources(int slot, int num, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) override;
|
||||
virtual void BindSamplerPS(const Sampler* sampler, int slot, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) override;
|
||||
virtual void BindSamplerVS(const Sampler* sampler, int slot, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) override;
|
||||
virtual void BindSamplerGS(const Sampler* sampler, int slot, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) override;
|
||||
virtual void BindSamplerHS(const Sampler* sampler, int slot, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) override;
|
||||
virtual void BindSamplerDS(const Sampler* sampler, int slot, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) override;
|
||||
virtual void BindSamplerCS(const Sampler* sampler, int slot, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) override;
|
||||
virtual void BindConstantBufferPS(const GPUBuffer* buffer, int slot, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) override;
|
||||
virtual void BindConstantBufferVS(const GPUBuffer* buffer, int slot, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) override;
|
||||
virtual void BindConstantBufferGS(const GPUBuffer* buffer, int slot, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) override;
|
||||
virtual void BindConstantBufferDS(const GPUBuffer* buffer, int slot, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) override;
|
||||
virtual void BindConstantBufferHS(const GPUBuffer* buffer, int slot, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) override;
|
||||
virtual void BindConstantBufferCS(const GPUBuffer* buffer, int slot, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) override;
|
||||
virtual void BindVertexBuffer(const GPUBuffer* vertexBuffer, int slot, UINT stride, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) override;
|
||||
virtual void BindVertexBuffers(GPUBuffer* const *vertexBuffers, int slot, UINT count, const UINT* strides, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) override;
|
||||
virtual void BindIndexBuffer(const GPUBuffer* indexBuffer, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) override;
|
||||
virtual void BindPrimitiveTopology(PRIMITIVETOPOLOGY type, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) override;
|
||||
virtual void BindVertexLayout(const VertexLayout* layout, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) override;
|
||||
virtual void BindBlendState(const BlendState* state, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) override;
|
||||
virtual void BindBlendStateEx(const BlendState* state, const XMFLOAT4& blendFactor = XMFLOAT4(1, 1, 1, 1), UINT sampleMask = 0xffffffff, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) override;
|
||||
virtual void BindDepthStencilState(const DepthStencilState* state, UINT stencilRef, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) override;
|
||||
virtual void BindRasterizerState(const RasterizerState* state, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) override;
|
||||
virtual void BindStreamOutTarget(const GPUBuffer* buffer, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) override;
|
||||
virtual void BindStreamOutTargets(GPUBuffer* const *buffers, UINT count, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) override;
|
||||
virtual void BindPS(const PixelShader* shader, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) override;
|
||||
virtual void BindVS(const VertexShader* shader, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) override;
|
||||
virtual void BindGS(const GeometryShader* shader, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) override;
|
||||
virtual void BindHS(const HullShader* shader, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) override;
|
||||
virtual void BindDS(const DomainShader* shader, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) override;
|
||||
virtual void BindCS(const ComputeShader* shader, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) override;
|
||||
virtual void Draw(int vertexCount, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) override;
|
||||
virtual void DrawIndexed(int indexCount, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) override;
|
||||
virtual void DrawInstanced(int vertexCount, int instanceCount, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) override;
|
||||
virtual void DrawIndexedInstanced(int indexCount, int instanceCount, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) override;
|
||||
virtual void Dispatch(UINT threadGroupCountX, UINT threadGroupCountY, UINT threadGroupCountZ, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) override;
|
||||
virtual void GenerateMips(Texture* texture, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) override;
|
||||
virtual void CopyTexture2D(Texture2D* pDst, const Texture2D* pSrc, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) override;
|
||||
virtual void CopyTexture2D_Region(Texture2D* pDst, UINT dstMip, UINT dstX, UINT dstY, const Texture2D* pSrc, UINT srcMip, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) override;
|
||||
virtual void MSAAResolve(Texture2D* pDst, const Texture2D* pSrc, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) override;
|
||||
virtual void UpdateBuffer(GPUBuffer* buffer, const void* data, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE, int dataSize = -1) override;
|
||||
virtual GPUBuffer* DownloadBuffer(GPUBuffer* buffer, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) override;
|
||||
virtual void Map(GPUBuffer* resource, UINT subResource, MAP mapType, UINT mapFlags, MappedSubresource* mappedResource, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) override;
|
||||
virtual void Unmap(GPUBuffer* resource, UINT subResource, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) override;
|
||||
virtual void SetScissorRects(UINT numRects, const Rect* rects = nullptr, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) override;
|
||||
virtual void QueryBegin(GPUQuery *query, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) override;
|
||||
virtual void QueryEnd(GPUQuery *query, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) override;
|
||||
virtual bool QueryRead(GPUQuery *query, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) override;
|
||||
GRAPHICSTHREAD threadID, int arrayIndex = -1) override;
|
||||
virtual void BindRenderTargets(UINT NumViews, Texture* const *ppRenderTargets, Texture2D* depthStencilTexture, GRAPHICSTHREAD threadID, int arrayIndex = -1) override;
|
||||
virtual void ClearRenderTarget(Texture* pTexture, const FLOAT ColorRGBA[4], GRAPHICSTHREAD threadID, int arrayIndex = -1) override;
|
||||
virtual void ClearDepthStencil(Texture2D* pTexture, UINT ClearFlags, FLOAT Depth, UINT8 Stencil, GRAPHICSTHREAD threadID, int arrayIndex = -1) override;
|
||||
virtual void BindResourcePS(const GPUResource* resource, int slot, GRAPHICSTHREAD threadID, int arrayIndex = -1) override;
|
||||
virtual void BindResourceVS(const GPUResource* resource, int slot, GRAPHICSTHREAD threadID, int arrayIndex = -1) override;
|
||||
virtual void BindResourceGS(const GPUResource* resource, int slot, GRAPHICSTHREAD threadID, int arrayIndex = -1) override;
|
||||
virtual void BindResourceDS(const GPUResource* resource, int slot, GRAPHICSTHREAD threadID, int arrayIndex = -1) override;
|
||||
virtual void BindResourceHS(const GPUResource* resource, int slot, GRAPHICSTHREAD threadID, int arrayIndex = -1) override;
|
||||
virtual void BindResourceCS(const GPUResource* resource, int slot, GRAPHICSTHREAD threadID, int arrayIndex = -1) override;
|
||||
virtual void BindUnorderedAccessResourceCS(const GPUUnorderedResource* buffer, int slot, GRAPHICSTHREAD threadID, int arrayIndex = -1) override;
|
||||
virtual void UnBindResources(int slot, int num, GRAPHICSTHREAD threadID) override;
|
||||
virtual void UnBindUnorderedAccessResources(int slot, int num, GRAPHICSTHREAD threadID) override;
|
||||
virtual void BindSamplerPS(const Sampler* sampler, int slot, GRAPHICSTHREAD threadID) override;
|
||||
virtual void BindSamplerVS(const Sampler* sampler, int slot, GRAPHICSTHREAD threadID) override;
|
||||
virtual void BindSamplerGS(const Sampler* sampler, int slot, GRAPHICSTHREAD threadID) override;
|
||||
virtual void BindSamplerHS(const Sampler* sampler, int slot, GRAPHICSTHREAD threadID) override;
|
||||
virtual void BindSamplerDS(const Sampler* sampler, int slot, GRAPHICSTHREAD threadID) override;
|
||||
virtual void BindSamplerCS(const Sampler* sampler, int slot, GRAPHICSTHREAD threadID) override;
|
||||
virtual void BindConstantBufferPS(const GPUBuffer* buffer, int slot, GRAPHICSTHREAD threadID) override;
|
||||
virtual void BindConstantBufferVS(const GPUBuffer* buffer, int slot, GRAPHICSTHREAD threadID) override;
|
||||
virtual void BindConstantBufferGS(const GPUBuffer* buffer, int slot, GRAPHICSTHREAD threadID) override;
|
||||
virtual void BindConstantBufferDS(const GPUBuffer* buffer, int slot, GRAPHICSTHREAD threadID) override;
|
||||
virtual void BindConstantBufferHS(const GPUBuffer* buffer, int slot, GRAPHICSTHREAD threadID) override;
|
||||
virtual void BindConstantBufferCS(const GPUBuffer* buffer, int slot, GRAPHICSTHREAD threadID) override;
|
||||
virtual void BindVertexBuffer(const GPUBuffer* vertexBuffer, int slot, UINT stride, GRAPHICSTHREAD threadID) override;
|
||||
virtual void BindVertexBuffers(GPUBuffer* const *vertexBuffers, int slot, UINT count, const UINT* strides, GRAPHICSTHREAD threadID) override;
|
||||
virtual void BindIndexBuffer(const GPUBuffer* indexBuffer, GRAPHICSTHREAD threadID) override;
|
||||
virtual void BindPrimitiveTopology(PRIMITIVETOPOLOGY type, GRAPHICSTHREAD threadID) override;
|
||||
virtual void BindVertexLayout(const VertexLayout* layout, GRAPHICSTHREAD threadID) override;
|
||||
virtual void BindBlendState(const BlendState* state, GRAPHICSTHREAD threadID) override;
|
||||
virtual void BindBlendStateEx(const BlendState* state, const XMFLOAT4& blendFactor, UINT sampleMask, GRAPHICSTHREAD threadID) override;
|
||||
virtual void BindDepthStencilState(const DepthStencilState* state, UINT stencilRef, GRAPHICSTHREAD threadID) override;
|
||||
virtual void BindRasterizerState(const RasterizerState* state, GRAPHICSTHREAD threadID) override;
|
||||
virtual void BindStreamOutTarget(const GPUBuffer* buffer, GRAPHICSTHREAD threadID) override;
|
||||
virtual void BindStreamOutTargets(GPUBuffer* const *buffers, UINT count, GRAPHICSTHREAD threadID) override;
|
||||
virtual void BindPS(const PixelShader* shader, GRAPHICSTHREAD threadID) override;
|
||||
virtual void BindVS(const VertexShader* shader, GRAPHICSTHREAD threadID) override;
|
||||
virtual void BindGS(const GeometryShader* shader, GRAPHICSTHREAD threadID) override;
|
||||
virtual void BindHS(const HullShader* shader, GRAPHICSTHREAD threadID) override;
|
||||
virtual void BindDS(const DomainShader* shader, GRAPHICSTHREAD threadID) override;
|
||||
virtual void BindCS(const ComputeShader* shader, GRAPHICSTHREAD threadID) override;
|
||||
virtual void Draw(int vertexCount, GRAPHICSTHREAD threadID) override;
|
||||
virtual void DrawIndexed(int indexCount, GRAPHICSTHREAD threadID) override;
|
||||
virtual void DrawInstanced(int vertexCount, int instanceCount, GRAPHICSTHREAD threadID) override;
|
||||
virtual void DrawIndexedInstanced(int indexCount, int instanceCount, GRAPHICSTHREAD threadID) override;
|
||||
virtual void Dispatch(UINT threadGroupCountX, UINT threadGroupCountY, UINT threadGroupCountZ, GRAPHICSTHREAD threadID) override;
|
||||
virtual void GenerateMips(Texture* texture, GRAPHICSTHREAD threadID) override;
|
||||
virtual void CopyTexture2D(Texture2D* pDst, const Texture2D* pSrc, GRAPHICSTHREAD threadID) override;
|
||||
virtual void CopyTexture2D_Region(Texture2D* pDst, UINT dstMip, UINT dstX, UINT dstY, const Texture2D* pSrc, UINT srcMip, GRAPHICSTHREAD threadID) override;
|
||||
virtual void MSAAResolve(Texture2D* pDst, const Texture2D* pSrc, GRAPHICSTHREAD threadID) override;
|
||||
virtual void UpdateBuffer(GPUBuffer* buffer, const void* data, GRAPHICSTHREAD threadID, int dataSize = -1) override;
|
||||
virtual GPUBuffer* DownloadBuffer(GPUBuffer* buffer, GRAPHICSTHREAD threadID) override;
|
||||
virtual void Map(GPUBuffer* resource, UINT subResource, MAP mapType, UINT mapFlags, MappedSubresource* mappedResource, GRAPHICSTHREAD threadID) override;
|
||||
virtual void Unmap(GPUBuffer* resource, UINT subResource, GRAPHICSTHREAD threadID) override;
|
||||
virtual void SetScissorRects(UINT numRects, const Rect* rects, GRAPHICSTHREAD threadID) override;
|
||||
virtual void QueryBegin(GPUQuery *query, GRAPHICSTHREAD threadID) override;
|
||||
virtual void QueryEnd(GPUQuery *query, GRAPHICSTHREAD threadID) override;
|
||||
virtual bool QueryRead(GPUQuery *query, GRAPHICSTHREAD threadID) override;
|
||||
|
||||
virtual HRESULT CreateTextureFromFile(const std::string& fileName, Texture2D **ppTexture, bool mipMaps = true, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) override;
|
||||
virtual HRESULT SaveTexturePNG(const std::string& fileName, Texture2D *pTexture, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) override;
|
||||
virtual HRESULT SaveTextureDDS(const std::string& fileName, Texture *pTexture, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE) override;
|
||||
virtual HRESULT CreateTextureFromFile(const std::string& fileName, Texture2D **ppTexture, bool mipMaps, GRAPHICSTHREAD threadID) override;
|
||||
virtual HRESULT SaveTexturePNG(const std::string& fileName, Texture2D *pTexture, GRAPHICSTHREAD threadID) override;
|
||||
virtual HRESULT SaveTextureDDS(const std::string& fileName, Texture *pTexture, GRAPHICSTHREAD threadID) override;
|
||||
|
||||
virtual void EventBegin(const std::string& name, GRAPHICSTHREAD threadID) override;
|
||||
virtual void EventEnd(GRAPHICSTHREAD threadID) override;
|
||||
|
||||
@@ -61,7 +61,7 @@ namespace wiHelper
|
||||
ss << "screenshots/sc_" << getCurrentDateTimeAsString() << ".png";
|
||||
else
|
||||
ss << name;
|
||||
if (SUCCEEDED(wiRenderer::GetDevice()->SaveTexturePNG(ss.str(), &wiRenderer::GetDevice()->GetBackBuffer())))
|
||||
if (SUCCEEDED(wiRenderer::GetDevice()->SaveTexturePNG(ss.str(), &wiRenderer::GetDevice()->GetBackBuffer(), GRAPHICSTHREAD_IMMEDIATE)))
|
||||
{
|
||||
ss << " Saved successfully!";
|
||||
wiBackLog::post(ss.str().c_str());
|
||||
|
||||
@@ -66,7 +66,7 @@ private:
|
||||
public:
|
||||
wiImage();
|
||||
|
||||
static void Draw(wiGraphicsTypes::Texture2D* texture, const wiImageEffects& effects,GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE);
|
||||
static void Draw(wiGraphicsTypes::Texture2D* texture, const wiImageEffects& effects,GRAPHICSTHREAD threadID);
|
||||
|
||||
static void DrawDeferred(wiGraphicsTypes::Texture2D* lightmap_diffuse, wiGraphicsTypes::Texture2D* lightmap_specular,
|
||||
wiGraphicsTypes::Texture2D* ao, GRAPHICSTHREAD threadID, int stencilref = 0);
|
||||
|
||||
@@ -40,7 +40,7 @@ public:
|
||||
const std::unordered_map<std::string, Range*>& GetRanges() { return ranges; }
|
||||
|
||||
// Renders a basic text of the Profiling results to the (x,y) screen coordinate
|
||||
void DrawData(int x, int y, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE);
|
||||
void DrawData(int x, int y, GRAPHICSTHREAD threadID);
|
||||
|
||||
bool ENABLED;
|
||||
|
||||
|
||||
@@ -2072,7 +2072,7 @@ void wiRenderer::OcclusionCulling_Render(GRAPHICSTHREAD threadID)
|
||||
GetDevice()->BindVertexBuffer(nullptr, 0, 0, threadID);
|
||||
GetDevice()->BindVS(vertexShaders[VSTYPE_CUBE], threadID);
|
||||
GetDevice()->BindPS(nullptr, threadID);
|
||||
GetDevice()->BindPrimitiveTopology(PRIMITIVETOPOLOGY::TRIANGLESTRIP);
|
||||
GetDevice()->BindPrimitiveTopology(PRIMITIVETOPOLOGY::TRIANGLESTRIP, threadID);
|
||||
|
||||
for (CulledCollection::const_iterator iter = culledRenderer.begin(); iter != culledRenderer.end(); ++iter)
|
||||
{
|
||||
@@ -2921,7 +2921,7 @@ void wiRenderer::DrawVolumeLights(Camera* camera, GRAPHICSTHREAD threadID)
|
||||
GetDevice()->EventBegin("Light Volume Render", threadID);
|
||||
|
||||
GetDevice()->BindPrimitiveTopology(TRIANGLELIST,threadID);
|
||||
GetDevice()->BindVertexLayout(nullptr);
|
||||
GetDevice()->BindVertexLayout(nullptr, threadID);
|
||||
GetDevice()->BindVertexBuffer(nullptr, 0, 0, threadID);
|
||||
GetDevice()->BindIndexBuffer(nullptr, threadID);
|
||||
GetDevice()->BindDepthStencilState(depthStencils[DSSTYPE_DEPTHREAD],STENCILREF_DEFAULT,threadID);
|
||||
@@ -5564,7 +5564,7 @@ void wiRenderer::CreateImpostor(Mesh* mesh)
|
||||
{
|
||||
Mesh::CreateImpostorVB();
|
||||
|
||||
static const GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE;
|
||||
static const GRAPHICSTHREAD threadID;
|
||||
static const int res = 256;
|
||||
|
||||
const AABB& bbox = mesh->aabb;
|
||||
|
||||
@@ -327,7 +327,7 @@ public:
|
||||
// Render data that needs to be updated on the main thread!
|
||||
static void UpdatePerFrameData(float dt);
|
||||
static void UpdateRenderData(GRAPHICSTHREAD threadID);
|
||||
static void OcclusionCulling_Render(GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE);
|
||||
static void OcclusionCulling_Render(GRAPHICSTHREAD threadID);
|
||||
static void OcclusionCulling_Read();
|
||||
static void UpdateImages();
|
||||
static void ManageImages();
|
||||
@@ -389,7 +389,7 @@ public:
|
||||
static void SetColorGrading(wiGraphicsTypes::Texture2D* tex){colorGrading=tex;};
|
||||
static void SetEnviromentMap(wiGraphicsTypes::Texture2D* tex){ enviroMap = tex; }
|
||||
static wiGraphicsTypes::Texture2D* GetEnviromentMap(){ return enviroMap; }
|
||||
static wiGraphicsTypes::Texture2D* GetLuminance(wiGraphicsTypes::Texture2D* sourceImage, GRAPHICSTHREAD threadID = GRAPHICSTHREAD_IMMEDIATE);
|
||||
static wiGraphicsTypes::Texture2D* GetLuminance(wiGraphicsTypes::Texture2D* sourceImage, GRAPHICSTHREAD threadID);
|
||||
static wiWaterPlane GetWaterPlane();
|
||||
|
||||
static Transform* getTransformByName(const std::string& name);
|
||||
|
||||
@@ -92,7 +92,7 @@ void* wiResourceManager::add(const wiHashString& name, Data_Type newType
|
||||
{
|
||||
Texture2D* image=nullptr;
|
||||
{
|
||||
wiRenderer::GetDevice()->CreateTextureFromFile(name.GetString().c_str(), &image, true);
|
||||
wiRenderer::GetDevice()->CreateTextureFromFile(name.GetString().c_str(), &image, true, GRAPHICSTHREAD_IMMEDIATE);
|
||||
}
|
||||
|
||||
if(image)
|
||||
|
||||
@@ -9,7 +9,7 @@ namespace wiVersion
|
||||
// minor features, major updates
|
||||
const int minor = 11;
|
||||
// minor bug fixes, alterations, refactors, updates
|
||||
const int revision = 44;
|
||||
const int revision = 45;
|
||||
|
||||
|
||||
long GetVersion()
|
||||
|
||||
Reference in New Issue
Block a user