port from perforce

This commit is contained in:
2026-04-18 22:31:51 +02:00
commit 8d0ab5b7cc
8409 changed files with 3972376 additions and 0 deletions

View File

@@ -0,0 +1,51 @@
#pragma once
#include "IEngine.h"
#include "IShader.h"
#include "ITexture.h"
#include "IRenderCommandNode.h"
#include "IResourceFactory.h"
#include "IPingPongBuffer.h"
class PingPongBuffer
: public IPingPongBuffer
{
public:
PingPongBuffer(IEngine& argEngine);
virtual ~PingPongBuffer();
virtual ITexture& get_InputTexture() const;
virtual void set_InputTexture(ITexture& argTexture);
virtual ITexture& get_OutputTexture() const;
virtual const PingPongBufferDescription& get_Descriptor() const;
virtual void set_Descriptor(const PingPongBufferDescription& argValue);
virtual IRenderCommandNode& get_RootNode() const;
virtual IRenderCommandNode& get_PreProcessNode() const;
protected:
void Rebuild(const PingPongBufferDescription& argValue);
private:
IEngine& m_Engine;
PingPongBufferDescription m_Descriptor;
ITexture* m_InputTexture;
IRenderCommandNode* m_RootNode;
IRenderCommandNode* m_PreProcessNode;
IRenderCommandNode* m_RenderTargetNodeA;
IRenderCommandNode* m_RenderTargetNodeB;
IShader* m_ShaderA;
IShader* m_ShaderB;
IShader* m_ShaderPreProcess;
IRenderTargetTexture* m_TextureA;
IRenderTargetTexture* m_TextureB;
IGeometryBuffer* m_ScreenQuad;
IShaderParameterCollection* m_ShaderParameterA;
IShaderParameterCollection* m_ShaderParameterB;
IShaderParameterCollection* m_ShaderParameterPreProcess;
};