13c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#ifndef _TCUX11_HPP 23c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#define _TCUX11_HPP 33c827367444ee418f129b2c238299f49d3264554Jarkko Poyry/*------------------------------------------------------------------------- 43c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * drawElements Quality Program Tester Core 53c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * ---------------------------------------- 63c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * 73c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * Copyright 2014 The Android Open Source Project 83c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * 93c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * Licensed under the Apache License, Version 2.0 (the "License"); 103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * you may not use this file except in compliance with the License. 113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * You may obtain a copy of the License at 123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * 133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * http://www.apache.org/licenses/LICENSE-2.0 143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * 153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * Unless required by applicable law or agreed to in writing, software 163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * distributed under the License is distributed on an "AS IS" BASIS, 173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * See the License for the specific language governing permissions and 193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * limitations under the License. 203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * 213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry *//*! 223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * \file 233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * \brief X11 utilities. 243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry *//*--------------------------------------------------------------------*/ 253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "tcuDefs.hpp" 273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "gluRenderConfig.hpp" 283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "gluPlatform.hpp" 293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "deMutex.hpp" 303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include <X11/Xlib.h> 323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include <X11/Xutil.h> 333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include <X11/keysym.h> 343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include <X11/Xatom.h> 353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 363c827367444ee418f129b2c238299f49d3264554Jarkko Poyrynamespace tcu 373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{ 383c827367444ee418f129b2c238299f49d3264554Jarkko Poyrynamespace x11 393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{ 403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 413c827367444ee418f129b2c238299f49d3264554Jarkko Poyryclass EventState 423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{ 433c827367444ee418f129b2c238299f49d3264554Jarkko Poyrypublic: 443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry EventState (void); 453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry virtual ~EventState (void); 463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void setQuitFlag (bool quit); 483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry bool getQuitFlag (void); 493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 503c827367444ee418f129b2c238299f49d3264554Jarkko Poyryprotected: 513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry de::Mutex m_mutex; 523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry bool m_quit; 533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 543c827367444ee418f129b2c238299f49d3264554Jarkko Poyryprivate: 553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry EventState (const EventState&); 563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry EventState& operator= (const EventState&); 573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry}; 583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 593c827367444ee418f129b2c238299f49d3264554Jarkko Poyryclass Display 603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{ 613c827367444ee418f129b2c238299f49d3264554Jarkko Poyrypublic: 623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry Display (EventState& platform, const char* name); 633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry virtual ~Display (void); 643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ::Display* getXDisplay (void) { return m_display; } 663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry Atom getDeleteAtom (void) { return m_deleteAtom; } 673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ::Visual* getVisual (VisualID visualID); 693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry bool getVisualInfo (VisualID visualID, XVisualInfo& dst); 703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void processEvents (void); 713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 723c827367444ee418f129b2c238299f49d3264554Jarkko Poyryprotected: 733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry EventState& m_eventState; 743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ::Display* m_display; 753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry Atom m_deleteAtom; 763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 773c827367444ee418f129b2c238299f49d3264554Jarkko Poyryprivate: 783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry Display (const Display&); 793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry Display& operator= (const Display&); 803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry}; 813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 823c827367444ee418f129b2c238299f49d3264554Jarkko Poyryclass Window 833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{ 843c827367444ee418f129b2c238299f49d3264554Jarkko Poyrypublic: 853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry Window (Display& display, int width, int height, 863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ::Visual* visual); 873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ~Window (void); 883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void setVisibility (bool visible); 903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void processEvents (void); 923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry Display& getDisplay (void) { return m_display; } 933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ::Window& getXID (void) { return m_window; } 943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void getDimensions (int* width, int* height) const; 963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void setDimensions (int width, int height); 973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 983c827367444ee418f129b2c238299f49d3264554Jarkko Poyryprotected: 993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 1003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry Display& m_display; 1013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ::Colormap m_colormap; 1023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ::Window m_window; 1033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry bool m_visible; 1043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 1053c827367444ee418f129b2c238299f49d3264554Jarkko Poyryprivate: 1063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry Window (const Window&); 1073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry Window& operator= (const Window&); 1083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry}; 1093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 1103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry} // x11 1113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry} // tcu 1123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 1133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#endif // _TCUX11_HPP 114