mirror of
https://github.com/DrBeef/Raze.git
synced 2024-12-15 15:11:01 +00:00
611dad7f69
Not hooked up yet.
45 lines
1.1 KiB
C++
45 lines
1.1 KiB
C++
#pragma once
|
|
|
|
#ifdef LoadImage
|
|
#undef LoadImage
|
|
#endif
|
|
|
|
#define SHADED_TEXTURE -1
|
|
#define DIRECT_PALETTE -2
|
|
|
|
#include "tarray.h"
|
|
#include "hw_ihwtexture.h"
|
|
#include "volk/volk.h"
|
|
|
|
struct FMaterialState;
|
|
class PolyBuffer;
|
|
|
|
class PolyHardwareTexture : public IHardwareTexture
|
|
{
|
|
public:
|
|
PolyHardwareTexture();
|
|
~PolyHardwareTexture();
|
|
|
|
static void ResetAll();
|
|
void Reset();
|
|
|
|
DCanvas *GetImage(FTexture *tex, int translation, int flags);
|
|
PolyDepthStencil *GetDepthStencil(FTexture *tex);
|
|
|
|
// Software renderer stuff
|
|
void AllocateBuffer(int w, int h, int texelsize) override;
|
|
uint8_t *MapBuffer() override;
|
|
unsigned int CreateTexture(unsigned char * buffer, int w, int h, int texunit, bool mipmap, const char *name) override;
|
|
|
|
// Wipe screen
|
|
void CreateWipeTexture(int w, int h, const char *name);
|
|
|
|
private:
|
|
void CreateImage(FTexture *tex, int translation, int flags);
|
|
|
|
static PolyHardwareTexture *First;
|
|
PolyHardwareTexture *Prev = nullptr;
|
|
PolyHardwareTexture *Next = nullptr;
|
|
std::unique_ptr<DCanvas> mCanvas;
|
|
std::unique_ptr<PolyDepthStencil> mDepthStencil;
|
|
};
|