mirror of
https://github.com/leozide/leocad
synced 2024-12-27 21:58:37 +01:00
74 lines
1.7 KiB
C++
74 lines
1.7 KiB
C++
// TR.h: interface for the TiledRender class.
|
|
//
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef _TR_H_
|
|
#define _TR_H_
|
|
|
|
typedef enum {
|
|
TR_TILE_WIDTH = 100,
|
|
TR_TILE_HEIGHT,
|
|
TR_TILE_BORDER,
|
|
TR_IMAGE_WIDTH,
|
|
TR_IMAGE_HEIGHT,
|
|
TR_ROWS,
|
|
TR_COLUMNS,
|
|
TR_CURRENT_ROW,
|
|
TR_CURRENT_COLUMN,
|
|
TR_CURRENT_TILE_WIDTH,
|
|
TR_CURRENT_TILE_HEIGHT,
|
|
TR_ROW_ORDER,
|
|
TR_TOP_TO_BOTTOM,
|
|
TR_BOTTOM_TO_TOP
|
|
} TRenum;
|
|
|
|
class TiledRender
|
|
{
|
|
public:
|
|
TiledRender();
|
|
virtual ~TiledRender();
|
|
|
|
void TileSize(int width, int height, int border);
|
|
void TileBuffer(TRenum format, TRenum type, void *image);
|
|
void ImageSize(int width, int height);
|
|
void ImageBuffer(TRenum format, TRenum type, void *image);
|
|
void RowOrder(TRenum order);
|
|
void Ortho(double left, double right, double bottom, double top, double zNear, double zFar);
|
|
void Frustum(double left, double right, double bottom, double top, double zNear, double zFar);
|
|
void Perspective(double fovy, double aspect, double zNear, double zFar );
|
|
int Get(TRenum param);
|
|
int EndTile();
|
|
void BeginTile();
|
|
|
|
// Final image parameters
|
|
int m_ImageWidth, m_ImageHeight;
|
|
TRenum m_ImageFormat, m_ImageType;
|
|
void *m_ImageBuffer;
|
|
|
|
// Tile parameters
|
|
int m_TileWidth, m_TileHeight;
|
|
int m_TileWidthNB, m_TileHeightNB;
|
|
int m_TileBorder;
|
|
TRenum m_TileFormat, m_TileType;
|
|
void *m_TileBuffer;
|
|
|
|
// Projection parameters
|
|
bool m_Perspective;
|
|
double m_Left;
|
|
double m_Right;
|
|
double m_Bottom;
|
|
double m_Top;
|
|
double m_Near;
|
|
double m_Far;
|
|
|
|
// Misc
|
|
TRenum m_RowOrder;
|
|
int m_Rows, m_Columns;
|
|
int m_CurrentTile;
|
|
int m_CurrentTileWidth, m_CurrentTileHeight;
|
|
int m_CurrentRow, m_CurrentColumn;
|
|
|
|
GLint m_ViewportSave[4];
|
|
};
|
|
|
|
#endif // _TR_H_
|