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,57 @@
#pragma once
#include "ITexture.h"
#include "IFileSystem.h"
#include "../ShaderParameterCollection/ShaderParameterCollection.h"
#include "../../Commands/CommandUserBase.h"
class Texture
: public ITexture
, public ShaderParameterCollection
{
public:
Texture(IEngine& argEngine);
virtual ~Texture();
virtual void Uninitialize();
// ITexture
virtual string8 get_BindingName() const { return m_TextureBindingName; }
virtual void set_BindingName(const string8& argName);
virtual string16 get_FileName() const { return m_FileName; }
virtual uint32 get_TextureWidth() const{ return m_TextureWidth; }
virtual uint32 get_TextureHeight() const { return m_TextureHeight; }
virtual uint32 get_TextureArraySize() const { return m_TextureArraySize; }
virtual DataFormat::Enumeration get_TextureFormat() const{ return m_TextureFormat; }
virtual void LoadFromFile(const string16& argFileName, DataAccessType::Enumeration argAccessType = DataAccessType::Static);
virtual void CreateTexture(const CreateTextureDescriptor& argDesc);
virtual LockedTextureData LockTextureBuffer(DataAccessMode::Enumeration argAccessMode, uint32 argArrayElement = 0);
virtual void UnlockTextureBuffer();
virtual void CreateRenderTargetTexture(uint32 argWidth, uint32 argHeight, DataFormat::Enumeration argFormat, uint32 argMultiSampleCount, uint32 argMultiSampleQuality);
virtual ID3D10ShaderResourceView* get_ResourceViewFromTexture() const { return m_ShaderResourceView; }
virtual ID3D10Texture2D* get_Texture2D() const { return m_Texture; }
protected:
// ICommandUser
virtual string8 get_UserName() const { return "Texture"; }
protected:
void CreateTexture(uint32 argWidth, uint32 argHeight, uint32 argMipLevels, uint32 m_Elements, DataFormat::Enumeration argFormat, TextureInitialData* ar_InitialData_, DataAccessType::Enumeration argAccessType, bool argRenderTarget, uint32 argMultiSampleCount, uint32 argMultiSampleQuality);
private:
ID3D10Buffer* m_TextureBuffer;
ID3D10Resource* m_TextureResource;
ID3D10ShaderResourceView* m_ShaderResourceView;
ID3D10Texture2D* m_Texture;
string16 m_FileName;
uint32 m_TextureWidth;
uint32 m_TextureHeight;
uint32 m_TextureArraySize;
DataFormat::Enumeration m_TextureFormat;
bool m_LockedTexture;
uint32 m_LockedArrayElement;
string8 m_TextureBindingName;
};