skia2/include/views/SkOSWindow_SDL.h

65 lines
1.4 KiB
C++

/*
* Copyright 2006 The Android Open Source Project
*
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#ifndef SkOSWindow_SDL_DEFINED
#define SkOSWindow_SDL_DEFINED
#include "SDL.h"
#include "SDL_opengl.h"
#include "SkWindow.h"
class SkOSWindow : public SkWindow {
public:
SkOSWindow(void* screen);
virtual ~SkOSWindow();
static bool PostEvent(SkEvent* evt, SkEventSinkID, SkMSec delay) {
SkFAIL("not implemented\n");
return false;
}
enum SkBackEndTypes {
kNone_BackEndType,
kNativeGL_BackEndType,
#if SK_ANGLE
kANGLE_BackEndType,
#endif // SK_ANGLE
#if SK_COMMAND_BUFFER
kCommandBuffer_BackEndType,
#endif // SK_COMMAND_BUFFER
};
void detach();
bool attach(SkBackEndTypes attachType, int msaaSampleCount, AttachmentInfo*);
void present();
bool makeFullscreen();
void setVsync(bool);
void closeWindow();
void loop() {
while (!fQuit) {
this->handleEvents();
this->update(nullptr);
}
}
protected:
void onSetTitle(const char title[]) override;
void onHandleInval(const SkIRect&) override;
void onPDFSaved(const char title[], const char desc[], const char path[]) override;
private:
void handleEvents();
bool fQuit;
uint32_t fWindowFlags;
SDL_Window* fWindow;
SDL_GLContext fGLContext;
typedef SkWindow INHERITED;
};
#endif