1
0
mirror of https://github.com/Halofreak1990/XFXFramework synced 2024-12-26 13:49:34 +01:00
Halofreak1990 ec0c1820dd Fixed TextureCollection issues caused by circular dependencies.
Added RenderTarget and RenderTarget2D classes to the XFX::Graphics namespace
Added Internal StorageDeviceAsyncResult class to the XFX::Storage namespace to aid in the implementation of the Guide.
Added Guide::BeginShowMessageBox and Guide::EndShowMessageBox methods
Began fixing comments to properly show up in IntelliSense
2011-06-09 12:57:16 +00:00

78 lines
3.0 KiB
C++

/********************************************************
* Texture2D.h *
* *
* XFX Texture2D definition file *
* Copyright © XFX Team. All Rights Reserved *
********************************************************/
#ifndef _XFX_GRAPHICS_TEXTURE2D_
#define _XFX_GRAPHICS_TEXTURE2D_
#include "Texture.h"
#include <System/IO/Stream.h>
#include <System/Types.h>
using namespace System;
using namespace System::IO;
namespace XFX
{
struct Rectangle;
namespace Graphics
{
class Texture2D : public Texture, virtual Object
{
private:
GraphicsDevice* device;
int _height; // The height of the texture before resizing it
bool _isDisposed; // True when the texture has been disposed
int _numberOfLevels; // The number of mip levels for the texture
TextureUsage_t _textureUsage;
SurfaceFormat_t _surfaceFormat; // The colour format of the texture
int _width; // the width of the texture before resizing it
int textureId; // The reference ID of the texture in OpenGL memory
int imageId;
void Load(byte buffer[]);
Texture2D(GraphicsDevice* graphicsDevice);
protected:
void Dispose(bool disposing);
public:
SurfaceFormat_t Format();
int Height();
TextureUsage_t TextureUsage_();
int Width();
Texture2D();
Texture2D(GraphicsDevice* graphicsDevice, int width, int height);
Texture2D(GraphicsDevice* graphicsDevice, int width, int height, int numberLevels, TextureUsage_t usage, SurfaceFormat_t format);
Texture2D(const Texture2D &obj); // Copy constructor
static Texture2D* FromFile(GraphicsDevice* graphicsDevice, Stream* textureStream);
static Texture2D* FromFile(GraphicsDevice* graphicsDevice, Stream* textureStream, TextureCreationParameters creationParameters);
static Texture2D* FromFile(GraphicsDevice* graphicsDevice, Stream* textureStream, int numberBytes);
static Texture2D* FromFile(GraphicsDevice* graphicsDevice, Stream* textureStream, int numberBytes, TextureCreationParameters creationParameters);
static Texture2D* FromFile(GraphicsDevice* graphicsDevice, char* filename);
static Texture2D* FromFile(GraphicsDevice* graphicsDevice, char* filename, TextureCreationParameters creationParameters);
static Texture2D* FromFile(GraphicsDevice* graphicsDevice, char* filename, int width, int height);
template <class T>
void GetData(T data[]);
template <class T>
void GetData(T data[], int startIndex, int elementCount);
template <class T>
void GetData(int level, Rectangle rect, T data[], int startIndex, int elementCount);
template <class T>
void SetData(T data[]);
template <class T>
void SetData(T data[], int startIndex, int elementCount, SetDataOptions_t options);
template <class T>
void SetData(int level, Rectangle rect, T data[], int startIndex, int elementCount, SetDataOptions_t options);
};
}
}
#endif //_XFX_GRAPHICS_TEXTURE2D_