#ifndef _TCULNXX11XCB_HPP #define _TCULNXX11XCB_HPP /*------------------------------------------------------------------------- * drawElements Quality Program Tester Core * ---------------------------------------- * * Copyright (c) 2016 The Khronos Group Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * *//*! * \file * \brief X11 using XCB utilities. *//*--------------------------------------------------------------------*/ #include "tcuLnxX11.hpp" #include namespace tcu { namespace lnx { namespace x11 { class XcbDisplay : public DisplayBase { public: XcbDisplay (EventState& platform, const char* name); virtual ~XcbDisplay (void); xcb_screen_t* getScreen (void) { return m_screen; } xcb_connection_t* getConnection (void) { return m_connection; } void processEvents (void); static bool hasDisplay (const char* name); static DisplayState s_displayState; protected: xcb_screen_t* m_screen; xcb_connection_t* m_connection; private: XcbDisplay (const XcbDisplay&); XcbDisplay& operator= (const XcbDisplay&); }; class XcbWindow : public WindowBase { public: XcbWindow (XcbDisplay& display, int width, int height, xcb_visualid_t* visual); ~XcbWindow (void); void setVisibility (bool visible); void processEvents (void); DisplayBase& getDisplay (void) { return (DisplayBase&)m_display; } xcb_window_t& getXID (void) { return m_window; } void getDimensions (int* width, int* height) const; void setDimensions (int width, int height); protected: XcbDisplay& m_display; xcb_colormap_t m_colormap; xcb_window_t m_window; private: XcbWindow (const XcbWindow&); XcbWindow& operator= (const XcbWindow&); }; } // x11 } // lnx } // tcu #endif // _TCULNXX11XCB_HPP