fix: fixed warnings
This commit is contained in:
parent
08b47fed6c
commit
4b39cc6094
|
@ -13,64 +13,71 @@
|
|||
#include "sww/window.h"
|
||||
|
||||
#define TITLE "SWW Clay"
|
||||
#define MAX_SCENE 1
|
||||
|
||||
typedef void (*SceneFunc)(swwWindow*);
|
||||
|
||||
typedef struct {
|
||||
int w;
|
||||
int h;
|
||||
int scene;
|
||||
swwRenderer *renderer;
|
||||
SceneFunc fs[MAX_SCENE];
|
||||
typedef struct
|
||||
{
|
||||
int w;
|
||||
int h;
|
||||
int scene;
|
||||
swwRenderer* renderer;
|
||||
SceneFunc fs[MAX_SCENE];
|
||||
} UserData;
|
||||
|
||||
void OnKey(swwWindow *o, swwKeycode key, int pressed) {
|
||||
if (key == swwKeycode_ESCAPE && pressed) {
|
||||
swwApp_PostQuitEvent();
|
||||
}
|
||||
void OnKey(swwWindow* o, swwKeycode key, int pressed)
|
||||
{
|
||||
if (key == swwKeycode_ESCAPE && pressed) {
|
||||
swwApp_PostQuitEvent();
|
||||
}
|
||||
}
|
||||
|
||||
void OnButton(swwWindow *o, swwButton btn, int pressed) {
|
||||
if (btn == swwButton_L && pressed) {
|
||||
UserData *ud = swwWindow_GetUserData(o);
|
||||
ud->need_render = !ud->need_render;
|
||||
} else if (btn == swwButton_R && pressed) {
|
||||
// Save to png file
|
||||
UserData *ud = swwWindow_GetUserData(o);
|
||||
uint32_t buf_size = swwUtil_PngBufferSize(ud->w, ud->h, 1);
|
||||
uint8_t *buf = (uint8_t *)malloc(buf_size);
|
||||
uint8_t *wbuf = swwRenderer_LockBuffer(ud->renderer);
|
||||
FILE *fp = NULL;
|
||||
swwUtil_SaveBufferToPngBuffer(buf, buf_size, wbuf, ud->w, ud->h, 1);
|
||||
fp = fopen("output.png", "wb+");
|
||||
fwrite(buf, 1, buf_size, fp);
|
||||
fclose(fp);
|
||||
free(buf);
|
||||
}
|
||||
void OnButton(swwWindow* o, swwButton btn, int pressed)
|
||||
{
|
||||
if (btn == swwButton_L && pressed) {
|
||||
UserData* ud = swwWindow_GetUserData(o);
|
||||
ud->scene = (ud->scene + 1) % MAX_SCENE;
|
||||
} else if (btn == swwButton_R && pressed) {
|
||||
// Save to png file
|
||||
UserData* ud = swwWindow_GetUserData(o);
|
||||
uint32_t buf_size = swwUtil_PngBufferSize(ud->w, ud->h, 1);
|
||||
uint8_t* buf = (uint8_t*)malloc(buf_size);
|
||||
uint8_t* wbuf = swwRenderer_LockBuffer(ud->renderer);
|
||||
FILE* fp = NULL;
|
||||
swwUtil_SaveBufferToPngBuffer(buf, buf_size, wbuf, ud->w, ud->h, 1);
|
||||
fp = fopen("output.png", "wb+");
|
||||
fwrite(buf, 1, buf_size, fp);
|
||||
fclose(fp);
|
||||
free(buf);
|
||||
}
|
||||
}
|
||||
|
||||
void OnScroll(swwWindow *o, float offset) {}
|
||||
void OnScroll(swwWindow* o, float offset)
|
||||
{}
|
||||
|
||||
int main() {
|
||||
swwWindowCallback callback = {OnKey, OnButton, OnScroll};
|
||||
swwApp_Initialize();
|
||||
int main()
|
||||
{
|
||||
swwWindowCallback callback = {OnKey, OnButton, OnScroll};
|
||||
swwApp_Initialize();
|
||||
|
||||
UserData ud = {500, 500, 0, NULL, {}};
|
||||
UserData ud = {500, 500, 0, NULL, {NULL}};
|
||||
|
||||
swwWindow *window = swwWindow_Create(TITLE, 500, 500);
|
||||
ud.renderer = swwRenderer_CreateAttachWindow(window, kSoftwareRenderer);
|
||||
swwWindow_SetUserData(window, &ud);
|
||||
swwWindow* window = swwWindow_Create(TITLE, ud.w, ud.h);
|
||||
ud.renderer = swwRenderer_CreateAttachWindow(window, kSoftwareRenderer);
|
||||
swwWindow_SetUserData(window, &ud);
|
||||
|
||||
swwWindow_SetCallback(window, &callback);
|
||||
swwWindow_SetCallback(window, &callback);
|
||||
|
||||
swwRateHelper rh;
|
||||
swwFpsHelper fps;
|
||||
|
||||
swwRenderer_EnablePerfMonitor(ud.renderer, 1);
|
||||
swwFpsHelper_Construct(&fps, 1.f);
|
||||
swwRateHelper_Construct(&rh, 30.f);
|
||||
|
||||
while (!swwApp_ShouldExit()) {
|
||||
swwRenderer_ClearBlack(ud.renderer);
|
||||
while (!swwApp_ShouldExit()) {
|
||||
swwRenderer_ClearBlack(ud.renderer);
|
||||
|
||||
if (swwFpsHelper_Update(&fps, ud.renderer)) {
|
||||
swwFpsHelper_SetTitleWithFps(&fps, window, TITLE);
|
||||
|
@ -80,11 +87,11 @@ int main() {
|
|||
|
||||
swwApp_PollEvent();
|
||||
swwRateHelper_Sleep(&rh);
|
||||
}
|
||||
}
|
||||
|
||||
swwRenderer_Destroy(ud.renderer);
|
||||
swwWindow_Destroy(window);
|
||||
swwApp_Cleanup();
|
||||
swwRenderer_Destroy(ud.renderer);
|
||||
swwWindow_Destroy(window);
|
||||
swwApp_Cleanup();
|
||||
|
||||
return 0;
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue