本文整理汇总了C++中VideoMode::GetSize方法的典型用法代码示例。如果您正苦于以下问题:C++ VideoMode::GetSize方法的具体用法?C++ VideoMode::GetSize怎么用?C++ VideoMode::GetSize使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类VideoMode
的用法示例。
在下文中一共展示了VideoMode::GetSize方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Open
Bool RenderWindowLinux::Open( const VideoMode & p_VideoMode, const std::string & p_Title, const Uint32 p_Style )
{
// open a connection with X server
if( ( m_pDisplay = XOpenDisplay( NULL ) ) == NULL )
{
std::cout << "[RenderWindowLinux::Create] Can not connect to X server." << std::endl;
return false;
}
// Initialize the X thread
// Should we?!?!
XInitThreads( );
// Get the screen
m_Screen = DefaultScreen( m_pDisplay );
// Creat the window attributes
XSetWindowAttributes WindowAttributes;
WindowAttributes.colormap = DefaultColormap( m_pDisplay, m_Screen );
WindowAttributes.event_mask = KeyPressMask | KeyReleaseMask |
ButtonPressMask | ButtonReleaseMask | ButtonMotionMask | PointerMotionMask |
EnterWindowMask | LeaveWindowMask | VisibilityChangeMask |
FocusChangeMask | ExposureMask | StructureNotifyMask;
// Create the window
m_Window = XCreateWindow( m_pDisplay,
DefaultRootWindow( m_pDisplay ),
0, 0, p_VideoMode.GetSize( ).x, p_VideoMode.GetSize( ).y,
0,
DefaultDepth( m_pDisplay, m_Screen ),
InputOutput,
DefaultVisual( m_pDisplay, m_Screen ),
CWBorderPixel | CWEventMask | CWColormap,
&WindowAttributes );
// It's very important to set the delete message. Else we wont be able to close the window.
::Atom wmDeleteMessage = XInternAtom( m_pDisplay, "WM_DELETE_WINDOW", false );
XSetWMProtocols( m_pDisplay, m_Window, &wmDeleteMessage, 1 );
// Set the window title
SetTitle( p_Title.c_str( ) );
// Let's set up the window decoration and the functionality
::Atom PropertyAtom = XInternAtom( m_pDisplay, "_MOTIF_WM_HINTS", false );
if( PropertyAtom )
{
struct HintsStruct
{
Uint32 Flags;
Uint32 Functions;
Uint32 Decorations;
Int32 InputMode;
Uint32 State;
};
HintsStruct Hints;
Hints.Flags = MWM_HINTS_FUNCTIONS | MWM_HINTS_FUNCTIONS;
Hints.Functions = 0;
Hints.Decorations = 0;
// Go through all the styles we want to apply to the window
if( p_Style == Bit::Style::Default )
{
Hints.Functions |= MWM_FUNC_ALL;
Hints.Decorations |= MWM_DECOR_ALL;
}
else
{
// Always set the resize and maximize functions and decorations.
// Some window managers seems to require this.
// Resizing can be disabled.
Hints.Functions |= MWM_FUNC_RESIZE | MWM_FUNC_MAXIMIZE;
Hints.Decorations |= MWM_DECOR_RESIZEH | MWM_DECOR_MAXIMIZE;
if( p_Style & Bit::Style::Close )
{
Hints.Functions |= MWM_FUNC_CLOSE;
}
if( p_Style & Bit::Style::Minimize )
{
Hints.Functions |= MWM_FUNC_MINIMIZE;
Hints.Decorations |= MWM_DECOR_MINIMIZE;
}
if( p_Style & Bit::Style::TitleBar )
{
Hints.Functions |= MWM_FUNC_MOVE | MWM_FUNC_MINIMIZE;
Hints.Decorations |= MWM_DECOR_BORDER | MWM_DECOR_TITLE | MWM_DECOR_MENU | MWM_DECOR_MINIMIZE;
}
}
// Apply the changes
XChangeProperty( m_pDisplay, m_Window, PropertyAtom, PropertyAtom, 32, PropModeReplace, (unsigned char *) &Hints, 5 );
//.........这里部分代码省略.........