1ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com 28a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com/* 3ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * Copyright 2006 The Android Open Source Project 48a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com * 5ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * Use of this source code is governed by a BSD-style license that can be 6ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * found in the LICENSE file. 78a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com */ 88a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 9a8540416f65b55aadbe68cdef9fece5a23257d5eyangsu@google.com#ifndef SkOSWindow_MacCocoa_DEFINED 10a8540416f65b55aadbe68cdef9fece5a23257d5eyangsu@google.com#define SkOSWindow_MacCocoa_DEFINED 11ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com 128a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#include "SkWindow.h" 138a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 148a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comclass SkOSWindow : public SkWindow { 158a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.compublic: 168a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SkOSWindow(void* hwnd); 17a8540416f65b55aadbe68cdef9fece5a23257d5eyangsu@google.com ~SkOSWindow(); 188a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com void* getHWND() const { return fHWND; } 191195925b05ee9d666ea8a8f68fde5d8ca7e49b04bsalomon@google.com 20fbfcd5602128ec010c82cb733c9cdc0a3254f9f3rmistry@google.com virtual bool onDispatchClick(int x, int y, Click::State state, 214d5c26de0a24f86c37c1da8b0e30d11a550ea67breed@google.com void* owner, unsigned modi); 22b442a6d5726569364e15c3056bbfb59b9b6e38cerobertphillips@google.com enum SkBackEndTypes { 23b442a6d5726569364e15c3056bbfb59b9b6e38cerobertphillips@google.com kNone_BackEndType, 24cf8fb1f6f03fc77f9927564f9ef9abeeeec508d2bsalomon@google.com#if SK_SUPPORT_GPU 25b442a6d5726569364e15c3056bbfb59b9b6e38cerobertphillips@google.com kNativeGL_BackEndType, 26cf8fb1f6f03fc77f9927564f9ef9abeeeec508d2bsalomon@google.com#endif 27b442a6d5726569364e15c3056bbfb59b9b6e38cerobertphillips@google.com }; 28b442a6d5726569364e15c3056bbfb59b9b6e38cerobertphillips@google.com 2964cc810ad165724f9c666a75bd52e41c67f13564bsalomon@google.com struct AttachmentInfo { 3064cc810ad165724f9c666a75bd52e41c67f13564bsalomon@google.com int fSampleCount; 3164cc810ad165724f9c666a75bd52e41c67f13564bsalomon@google.com int fStencilBits; 3264cc810ad165724f9c666a75bd52e41c67f13564bsalomon@google.com }; 3364cc810ad165724f9c666a75bd52e41c67f13564bsalomon@google.com 34b442a6d5726569364e15c3056bbfb59b9b6e38cerobertphillips@google.com void detach(); 3564cc810ad165724f9c666a75bd52e41c67f13564bsalomon@google.com bool attach(SkBackEndTypes attachType, int msaaSampleCount, AttachmentInfo*); 36b442a6d5726569364e15c3056bbfb59b9b6e38cerobertphillips@google.com void present(); 371195925b05ee9d666ea8a8f68fde5d8ca7e49b04bsalomon@google.com 388a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comprotected: 396efdc47afc8bb24603fc0d15146ada609b728f2freed@android.com // overrides from SkEventSink 406efdc47afc8bb24603fc0d15146ada609b728f2freed@android.com virtual bool onEvent(const SkEvent& evt); 418a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com // overrides from SkWindow 428a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com virtual void onHandleInval(const SkIRect&); 438a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com // overrides from SkView 448a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com virtual void onAddMenu(const SkOSMenu*); 45a8540416f65b55aadbe68cdef9fece5a23257d5eyangsu@google.com virtual void onUpdateMenu(const SkOSMenu*); 468a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com virtual void onSetTitle(const char[]); 47fbfcd5602128ec010c82cb733c9cdc0a3254f9f3rmistry@google.com 488a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comprivate: 498a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com void* fHWND; 50a8540416f65b55aadbe68cdef9fece5a23257d5eyangsu@google.com bool fInvalEventIsPending; 51a8540416f65b55aadbe68cdef9fece5a23257d5eyangsu@google.com void* fNotifier; 52cf8fb1f6f03fc77f9927564f9ef9abeeeec508d2bsalomon@google.com#if SK_SUPPORT_GPU 53a8540416f65b55aadbe68cdef9fece5a23257d5eyangsu@google.com void* fGLContext; 54cf8fb1f6f03fc77f9927564f9ef9abeeeec508d2bsalomon@google.com#endif 558a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com typedef SkWindow INHERITED; 568a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com}; 578a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 584ee8aea2a77d2d22d56afe68699179e5a02ac4f4caryclark@google.com#endif 59