mirror of
https://github.com/aap/librw.git
synced 2025-12-22 10:29:55 +00:00
add camera example
This commit is contained in:
62
tools/camera/camexamp.h
Normal file
62
tools/camera/camexamp.h
Normal file
@@ -0,0 +1,62 @@
|
||||
struct TextureCamera
|
||||
{
|
||||
rw::Raster *raster;
|
||||
rw::Raster *zRaster;
|
||||
rw::Camera *camera;
|
||||
rw::Texture *texture;
|
||||
};
|
||||
|
||||
struct CameraData
|
||||
{
|
||||
float farClipPlane;
|
||||
float nearClipPlane;
|
||||
rw::uint32 projection;
|
||||
rw::V2d offset;
|
||||
rw::V2d viewWindow;
|
||||
rw::Camera *camera;
|
||||
TextureCamera *cameraTexture;
|
||||
rw::Matrix *matrix;
|
||||
};
|
||||
|
||||
enum CameraDataType
|
||||
{
|
||||
NONE = 0x00,
|
||||
FARCLIPPLANE = 0x01,
|
||||
NEARCLIPPLANE = 0x02,
|
||||
PROJECTION = 0x04,
|
||||
OFFSET = 0x08,
|
||||
VIEWWINDOW = 0x10,
|
||||
MATRIX = 0x20,
|
||||
ALL = 0xFF
|
||||
};
|
||||
|
||||
extern rw::Camera *MainCamera;
|
||||
extern rw::Camera *SubCamera;
|
||||
|
||||
extern rw::int32 CameraSelected;
|
||||
extern rw::int32 ProjectionIndex;
|
||||
|
||||
extern CameraData SubCameraData;
|
||||
|
||||
void CameraQueryData(CameraData *data, CameraDataType type, rw::Camera *camera);
|
||||
void CameraSetData(CameraData *data, CameraDataType type);
|
||||
|
||||
void ChangeViewOffset(float deltaX, float deltaY);
|
||||
void ChangeViewWindow(float deltaX, float deltaY);
|
||||
void ProjectionCallback(void);
|
||||
void ClipPlaneCallback(void);
|
||||
|
||||
void CamerasCreate(rw::World *world);
|
||||
void CamerasDestroy(rw::World *world);
|
||||
void CameraSizeUpdate(rw::Rect *rect, float viewWindow, float aspectRatio);
|
||||
void RenderSubCamera(rw::RGBA *foregroundColor, rw::int32 clearMode, rw::World *world);
|
||||
void RenderTextureCamera(rw::RGBA *foregroundColor, rw::int32 clearMode, rw::World *world);
|
||||
void SubCameraMiniViewSelect(bool select);
|
||||
|
||||
void CameraTextureInit(TextureCamera *ct);
|
||||
void CameraTextureTerm(TextureCamera *ct);
|
||||
void DrawCameraFrustum(CameraData *c);
|
||||
void DrawCameraViewplaneTexture(CameraData *c);
|
||||
|
||||
void ViewerRotate(rw::Camera *camera, float deltaX, float deltaY);
|
||||
void ViewerTranslate(rw::Camera *camera, float deltaX, float deltaY);
|
||||
Reference in New Issue
Block a user