abc0c8216b
Implements: * Event loop event waiting (no busy loop) ** Skia timers * Proper window sizing and resizing * MSAA on X11 (previously it did not use MSAA at all) * Changes requested colorspace from 565 to 8888 to match non-SDL variants * Context creation clearing (color and stencil mask) * Opens the window in 640x480 by default on desktop. Removes dead code. BUG=skia:4733 GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1578173002 Review URL: https://codereview.chromium.org/1578173002
58 lines
1.4 KiB
C++
58 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*);
|
|
virtual ~SkOSWindow();
|
|
|
|
enum SkBackEndTypes {
|
|
kNone_BackEndType, // TODO: remove this, it's not a real option.
|
|
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();
|
|
static void RunEventLoop();
|
|
|
|
protected:
|
|
void onSetTitle(const char title[]) override;
|
|
|
|
private:
|
|
void createWindow(int msaaSampleCount);
|
|
void destroyWindow();
|
|
void updateWindowTitle();
|
|
static SkOSWindow* GetInstanceForWindowID(Uint32 windowID);
|
|
static bool HasDirtyWindows();
|
|
static void UpdateDirtyWindows();
|
|
static void HandleEvent(const SDL_Event&);
|
|
|
|
SDL_Window* fWindow;
|
|
SDL_GLContext fGLContext;
|
|
int fWindowMSAASampleCount;
|
|
typedef SkWindow INHERITED;
|
|
};
|
|
|
|
#endif
|