MinecraftConsoles/Minecraft.Client/BufferedImage.h
2026-03-14 14:51:06 -07:00

44 lines
1.3 KiB
C++

#pragma once
#include <cstdint>
using namespace std;
class Graphics;
class DLCPack;
union Pixel { // Could be a duplicate but I didnt search that hard
uint32_t raw;
struct { // argb flipped because of endianness
unsigned char b;
unsigned char g;
unsigned char r;
unsigned char a;
};
};
class BufferedImage
{
private:
int *data[10]; // Arrays for mipmaps - nullptr if not used
int width;
int height;
void ByteFlip4(unsigned int &data); // 4J added
public:
static const int TYPE_INT_ARGB = 0;
static const int TYPE_INT_RGB = 1;
BufferedImage(int width,int height,int type);
BufferedImage(const wstring& File, bool filenameHasExtension = false, bool bTitleUpdateTexture=false, const wstring &drive =L""); // 4J added
BufferedImage(DLCPack *dlcPack, const wstring& File, bool filenameHasExtension = false ); // 4J Added
BufferedImage(BYTE *pbData, DWORD dwBytes); // 4J added
~BufferedImage();
int getWidth();
int getHeight();
void getRGB(int startX, int startY, int w, int h, intArray out,int offset,int scansize, int level = 0); // 4J Added level param
int *getData(); // 4J added
int *getData(int level); // 4J added
Graphics *getGraphics();
int getTransparency();
BufferedImage *getSubimage(int x, int y, int w, int h);
void preMultiplyAlpha();
};