diff -r 000000000000 -r 6474c204b198 gfx/skia/trunk/include/views/SkOSWindow_Unix.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gfx/skia/trunk/include/views/SkOSWindow_Unix.h Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,82 @@ +/* + * 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_Unix_DEFINED +#define SkOSWindow_Unix_DEFINED + +#include +#include + +#include "SkWindow.h" + +class SkEvent; + +struct SkUnixWindow { + Display* fDisplay; + Window fWin; + size_t fOSWin; + GC fGc; + GLXContext fGLContext; +}; + +class SkOSWindow : public SkWindow { +public: + SkOSWindow(void*); + ~SkOSWindow(); + + void* getHWND() const { return (void*)fUnixWindow.fWin; } + void* getDisplay() const { return (void*)fUnixWindow.fDisplay; } + void* getUnixWindow() const { return (void*)&fUnixWindow; } + void loop(); + + enum SkBackEndTypes { + kNone_BackEndType, + kNativeGL_BackEndType, + }; + + struct AttachmentInfo { + int fSampleCount; + int fStencilBits; + }; + + bool attach(SkBackEndTypes attachType, int msaaSampleCount, AttachmentInfo*); + void detach(); + void present(); + + int getMSAASampleCount() const { return fMSAASampleCount; } + + //static bool PostEvent(SkEvent* evt, SkEventSinkID, SkMSec delay); + +protected: + // Overridden from from SkWindow: + virtual void onSetTitle(const char title[]) SK_OVERRIDE; + +private: + enum NextXEventResult { + kContinue_NextXEventResult, + kQuitRequest_NextXEventResult, + kPaintRequest_NextXEventResult + }; + + NextXEventResult nextXEvent(); + void doPaint(); + void mapWindowAndWait(); + + void closeWindow(); + void initWindow(int newMSAASampleCount, AttachmentInfo* info); + + SkUnixWindow fUnixWindow; + + // Needed for GL + XVisualInfo* fVi; + // we recreate the underlying xwindow if this changes + int fMSAASampleCount; + + typedef SkWindow INHERITED; +}; + +#endif