1
0
Fork 0
mirror of https://github.com/bjornbytes/lovr.git synced 2024-07-03 04:53:35 +00:00
lovr/src/graphics/canvas.h

40 lines
1.2 KiB
C
Raw Normal View History

#include "graphics/texture.h"
#pragma once
2017-12-07 07:50:52 +00:00
2018-08-24 01:28:37 +00:00
#define MAX_CANVAS_ATTACHMENTS 4
typedef struct {
Texture* texture;
int slice;
int level;
} Attachment;
2018-08-24 21:43:39 +00:00
typedef struct {
struct {
bool enabled;
bool readable;
TextureFormat format;
} depth;
2018-08-25 01:38:46 +00:00
bool stereo;
int msaa;
2018-08-29 20:34:54 +00:00
bool mipmaps;
2018-08-24 21:43:39 +00:00
} CanvasFlags;
typedef struct Canvas Canvas;
2018-08-24 21:43:39 +00:00
Canvas* lovrCanvasCreate(int width, int height, CanvasFlags flags);
Canvas* lovrCanvasCreateFromHandle(int width, int height, CanvasFlags flags, uint32_t framebuffer, uint32_t depthBuffer, uint32_t resolveBuffer, int attachmentCount, bool immortal);
2018-02-26 08:59:03 +00:00
void lovrCanvasDestroy(void* ref);
2018-08-24 01:28:37 +00:00
const Attachment* lovrCanvasGetAttachments(Canvas* canvas, int* count);
void lovrCanvasSetAttachments(Canvas* canvas, Attachment* attachments, int count);
2018-08-31 13:03:35 +00:00
void lovrCanvasBind(Canvas* canvas, bool willDraw);
2018-12-11 21:27:59 +00:00
bool lovrCanvasIsDirty(Canvas* canvas);
2018-08-29 19:40:19 +00:00
void lovrCanvasResolve(Canvas* canvas);
2018-08-29 04:16:19 +00:00
bool lovrCanvasIsStereo(Canvas* canvas);
2018-08-30 00:06:20 +00:00
int lovrCanvasGetWidth(Canvas* canvas);
int lovrCanvasGetHeight(Canvas* canvas);
int lovrCanvasGetMSAA(Canvas* canvas);
Texture* lovrCanvasGetDepthTexture(Canvas* canvas);
2018-08-29 21:03:14 +00:00
TextureData* lovrCanvasNewTextureData(Canvas* canvas, int index);