本文整理汇总了C++中GHOST_Rect::getWidth方法的典型用法代码示例。如果您正苦于以下问题:C++ GHOST_Rect::getWidth方法的具体用法?C++ GHOST_Rect::getWidth怎么用?C++ GHOST_Rect::getWidth使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类GHOST_Rect
的用法示例。
在下文中一共展示了GHOST_Rect::getWidth方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
GPG_Canvas::GPG_Canvas(GHOST_IWindow* window)
: GPC_Canvas(0, 0), m_window(window)
{
if (m_window)
{
GHOST_Rect bnds;
m_window->getClientBounds(bnds);
this->Resize(bnds.getWidth(), bnds.getHeight());
}
}
示例2: setupOpenGL
bool ofxFenster::setupOpenGL(int l, int t, int w, int h, int screenMode) {
STR_String title("window");
GHOST_TWindowState state=GHOST_kWindowStateNormal;
if(screenMode==OF_FULLSCREEN) {
isFullscreen=true;
state=GHOST_kWindowStateFullScreen;
}
win = GHOST_ISystem::getSystem()->createWindow(title, l, t, w, h, state, GHOST_kDrawingContextTypeOpenGL, false, false);
if (!win) {
ofLog(OF_LOG_ERROR, "HOUSTON WE GOT A PROBLEM! could not create window");
return false;
}
//get background color. not working yet because opengl renderer does not exist yet, so fill with black
//float * bgPtr = ofBgColorPtr();
//bgColor.set(bgPtr[0]*255,bgPtr[1]*255,bgPtr[2]*255, bgPtr[3]*255);
//bClearAuto = ofbClearBg();
setActive();
bgColor.set(0,0,0);
//ofClear(bgColor.r, bgColor.g, bgColor.b, bgColor.a);
//update sizes
GHOST_Rect rect;
win->getClientBounds(rect);
height=rect.getHeight();
width=rect.getWidth();
pos.x=rect.m_l;
pos.y=rect.m_t;
//initial clear
glClearColor(.55, .55, .55, 0.0);
glClear(GL_COLOR_BUFFER_BIT);
setDragAndDrop(true);
setup();
return true;
}
示例3: processEvent
bool GPG_Application::processEvent(GHOST_IEvent* event)
{
bool handled = true;
switch (event->getType())
{
case GHOST_kEventUnknown:
break;
case GHOST_kEventButtonDown:
handled = handleButton(event, true);
break;
case GHOST_kEventButtonUp:
handled = handleButton(event, false);
break;
case GHOST_kEventWheel:
handled = handleWheel(event);
break;
case GHOST_kEventCursorMove:
handled = handleCursorMove(event);
break;
case GHOST_kEventKeyDown:
handleKey(event, true);
break;
case GHOST_kEventKeyUp:
handleKey(event, false);
break;
case GHOST_kEventWindowClose:
case GHOST_kEventQuit:
m_exitRequested = KX_EXIT_REQUEST_OUTSIDE;
break;
case GHOST_kEventWindowActivate:
handled = false;
break;
case GHOST_kEventWindowDeactivate:
handled = false;
break;
// The player now runs as often as it can (repsecting vsync and fixedtime).
// This allows the player to break 100fps, but this code is being left here
// as reference. (see EngineNextFrame)
//case GHOST_kEventWindowUpdate:
// {
// GHOST_IWindow* window = event->getWindow();
// if (!m_system->validWindow(window)) break;
// // Update the state of the game engine
// if (m_kxsystem && !m_exitRequested)
// {
// // Proceed to next frame
// window->activateDrawingContext();
// // first check if we want to exit
// m_exitRequested = m_ketsjiengine->GetExitCode();
//
// // kick the engine
// bool renderFrame = m_ketsjiengine->NextFrame();
// if (renderFrame)
// {
// // render the frame
// m_ketsjiengine->Render();
// }
// }
// m_exitString = m_ketsjiengine->GetExitString();
// }
// break;
//
case GHOST_kEventWindowSize:
{
GHOST_IWindow* window = event->getWindow();
if (!m_system->validWindow(window)) break;
if (m_canvas) {
GHOST_Rect bnds;
window->getClientBounds(bnds);
m_canvas->Resize(bnds.getWidth(), bnds.getHeight());
m_ketsjiengine->Resize();
}
}
break;
default:
handled = false;
break;
}
return handled;
}
示例4: View
static void View(GHOST_IWindow* window, bool stereo, int eye = 0)
{
window->activateDrawingContext();
GHOST_Rect bnds;
int noOfScanlines = 0, lowerScanline = 0;
int verticalBlankingInterval = 32; // hard coded for testing purposes, display device dependant
float left, right, bottom, top;
float nearplane, farplane, zeroPlane, distance;
float eyeSeparation = 0.62f;
window->getClientBounds(bnds);
// viewport
if(stereo)
{
if(nVidiaWindows)
{
// handled by nVidia driver so act as normal (explicitly put here since
// it -is- stereo)
glViewport(0, 0, bnds.getWidth(), bnds.getHeight());
}
else
{ // generic cross platform above-below stereo
noOfScanlines = (bnds.getHeight() - verticalBlankingInterval) / 2;
switch(eye)
{
case LEFT_EYE:
// upper half of window
lowerScanline = bnds.getHeight() - noOfScanlines;
break;
case RIGHT_EYE:
// lower half of window
lowerScanline = 0;
break;
}
}
}
else
{
noOfScanlines = bnds.getHeight();
lowerScanline = 0;
}
glViewport(0, lowerScanline, bnds.getWidth(), noOfScanlines);
// projection
left = -6.0;
right = 6.0;
bottom = -4.8f;
top = 4.8f;
nearplane = 5.0;
farplane = 60.0;
if(stereo)
{
zeroPlane = 0.0;
distance = 14.5;
switch(eye)
{
case LEFT_EYE:
StereoProjection(left, right, bottom, top, nearplane, farplane, zeroPlane, distance, -eyeSeparation / 2.0);
break;
case RIGHT_EYE:
StereoProjection(left, right, bottom, top, nearplane, farplane, zeroPlane, distance, eyeSeparation / 2.0);
break;
}
}
else
{
// left = -w;
// right = w;
// bottom = -h;
// top = h;
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glFrustum(left, right, bottom, top, 5.0, 60.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glTranslatef(0.0, 0.0, -40.0);
}
glClearColor(.2f,0.0f,0.0f,0.0f);
}
示例5: processEvent
bool GPG_Application::processEvent(GHOST_IEvent* event)
{
bool handled = true;
switch (event->getType())
{
case GHOST_kEventUnknown:
break;
case GHOST_kEventButtonDown:
handled = handleButton(event, true);
break;
case GHOST_kEventButtonUp:
handled = handleButton(event, false);
break;
case GHOST_kEventWheel:
handled = handleWheel(event);
break;
case GHOST_kEventCursorMove:
handled = handleCursorMove(event);
break;
case GHOST_kEventKeyDown:
handleKey(event, true);
break;
case GHOST_kEventKeyUp:
handleKey(event, false);
break;
case GHOST_kEventWindowClose:
case GHOST_kEventQuit:
m_exitRequested = KX_EXIT_REQUEST_OUTSIDE;
break;
case GHOST_kEventWindowActivate:
handled = false;
break;
case GHOST_kEventWindowDeactivate:
handled = false;
break;
case GHOST_kEventWindowUpdate:
{
GHOST_IWindow* window = event->getWindow();
if (!m_system->validWindow(window)) break;
// Update the state of the game engine
if (m_kxsystem && !m_exitRequested)
{
// Proceed to next frame
window->activateDrawingContext();
// first check if we want to exit
m_exitRequested = m_ketsjiengine->GetExitCode();
// kick the engine
bool renderFrame = m_ketsjiengine->NextFrame();
if (renderFrame)
{
// render the frame
m_ketsjiengine->Render();
}
}
m_exitString = m_ketsjiengine->GetExitString();
}
break;
case GHOST_kEventWindowSize:
{
GHOST_IWindow* window = event->getWindow();
if (!m_system->validWindow(window)) break;
if (m_canvas) {
GHOST_Rect bnds;
window->getClientBounds(bnds);
m_canvas->Resize(bnds.getWidth(), bnds.getHeight());
}
}
break;
default:
handled = false;
break;
}
return handled;
}
示例6: processEvent
bool ofxFensterManager::processEvent(GHOST_IEvent* event)
{
if(event->getType()==GHOST_kEventUnknown)
return false;
GHOST_IWindow* window = event->getWindow();
bool handled = true;
ofxFenster* win=getFensterByHandler(window);
GHOST_Rect winPos; //why on every process...?
window->getWindowBounds(winPos);
switch (event->getType())
{
//////////////////// MOUSE
case GHOST_kEventCursorMove:
{
GHOST_TEventCursorData* bd=(GHOST_TEventCursorData*)event->getData();
GHOST_TInt32 x,y;
window->screenToClient(bd->x, bd->y, x, y);
ofPoint p(x, y);
p.y -= 1;
if(win->isButtonDown) {
//win->mouseDragged(bd->x-winPos.m_l, bd->y-winPos.m_t, win->buttonDown);
win->mouseDragged(p.x, p.y, win->buttonDown);
} else {
//win->mouseMoved(bd->x-winPos.m_l, bd->y-winPos.m_t);
win->mouseMoved(p.x, p.y);
}
break;
}
case GHOST_kEventWheel:
{
break;
}
case GHOST_kEventButtonDown:
{
GHOST_TEventButtonData* bd=(GHOST_TEventButtonData*)event->getData();
win->isButtonDown=true;
win->buttonDown=bd->button;
win->mousePressed(bd->button);
break;
}
case GHOST_kEventButtonUp:
{
GHOST_TEventButtonData* bd=(GHOST_TEventButtonData*)event->getData();
win->isButtonDown=false;
win->mouseReleased(bd->button);
break;
}
////////////////// KEYBOARD
case GHOST_kEventKeyUp:
{
int key=handleKeyData((GHOST_TEventKeyData*) event->getData());
if(key==OF_KEY_ESC)
break;
win->keyReleased(key);
break;
}
case GHOST_kEventKeyDown:
{
int key=handleKeyData((GHOST_TEventKeyData*) event->getData());
if(key==OF_KEY_ESC)
ofExit(0);
win->keyPressed(key);
break;
}
////////////////// WINDOW
case GHOST_kEventWindowSize:
{
GHOST_Rect rect;
window->getClientBounds(rect);
win->windowResized(rect.getWidth(), rect.getHeight());
break;
}
case GHOST_kEventWindowMove:
{
GHOST_Rect rect;
window->getWindowBounds(rect);
//cout << rect.m_t << endl;
//GHOST_TInt32 x,y;
//window->screenToClient(rect.m_l, rect.m_t, x, y);
win->windowMoved(rect.m_l, rect.m_t);
break;
}
case GHOST_kEventWindowUpdate:
{
win->draw();
window->swapBuffers();
break;
}
case GHOST_kEventWindowActivate:
{
break;
}
case GHOST_kEventWindowDeactivate:
//.........这里部分代码省略.........