bool graphics_destroy(){ freeGraphics(); gfx_modes.clear(); if( gx_graphics ){ gx_runtime->closeGraphics( gx_graphics ); gx_graphics=0; } return true; }
void ScalpelInventory::putInv(InvSlamMode slamIt) { ScalpelScreen &screen = *(ScalpelScreen *)_vm->_screen; UserInterface &ui = *_vm->_ui; // If an inventory item has disappeared (due to using it or giving it), // a blank space slot may have appeared. If so, adjust the inventory if (_invIndex > 0 && _invIndex > (_holdings - (int)_invShapes.size())) { --_invIndex; freeGraphics(); loadGraphics(); } if (slamIt != SLAM_SECONDARY_BUFFER) { screen.makePanel(Common::Rect(6, 163, 54, 197)); screen.makePanel(Common::Rect(58, 163, 106, 197)); screen.makePanel(Common::Rect(110, 163, 158, 197)); screen.makePanel(Common::Rect(162, 163, 210, 197)); screen.makePanel(Common::Rect(214, 163, 262, 197)); screen.makePanel(Common::Rect(266, 163, 314, 197)); } // Iterate through displaying up to 6 objects at a time for (int idx = _invIndex; idx < _holdings && (idx - _invIndex) < (int)_invShapes.size(); ++idx) { int itemNum = idx - _invIndex; Surface &bb = slamIt == SLAM_SECONDARY_BUFFER ? screen._backBuffer2 : screen._backBuffer1; Common::Rect r(8 + itemNum * 52, 165, 51 + itemNum * 52, 194); // Draw the background if (idx == ui._selector) { bb.fillRect(r, BUTTON_BACKGROUND); } else if (slamIt == SLAM_SECONDARY_BUFFER) { bb.fillRect(r, BUTTON_MIDDLE); } // Draw the item image ImageFrame &frame = (*_invShapes[itemNum])[0]; bb.transBlitFrom(frame, Common::Point(6 + itemNum * 52 + ((47 - frame._width) / 2), 163 + ((33 - frame._height) / 2))); } if (slamIt == SLAM_DISPLAY) screen.slamArea(6, 163, 308, 34); if (slamIt != SLAM_SECONDARY_BUFFER) ui.clearInfo(); if (slamIt == 0) { invCommands(0); } else if (slamIt == SLAM_SECONDARY_BUFFER) { screen._backBuffer = &screen._backBuffer2; invCommands(0); screen._backBuffer = &screen._backBuffer1; } }
void bbEndGraphics(){ freeGraphics(); gx_runtime->closeGraphics( gx_graphics ); gx_graphics=gx_runtime->openGraphics( 400,300,0,0,gxGraphics::GRAPHICS_WINDOWED ); if( !gx_runtime->idle() ) RTEX( 0 ); if( gx_graphics ){ curr_clsColor=0; curr_color=0xffffffff; curr_font=gx_graphics->getDefaultFont(); bbSetBuffer( gx_graphics->getFrontCanvas() ); return; } RTEX( "Unable to set graphics mode" ); }
static void graphics( int w,int h,int d,int flags ){ freeGraphics(); gx_runtime->closeGraphics( gx_graphics ); gx_graphics=gx_runtime->openGraphics( w,h,d,gx_driver,flags ); if( !gx_runtime->idle() ) RTEX( 0 ); if( !gx_graphics ){ RTEX( "Unable to set graphics mode" ); } curr_clsColor=0; curr_color=0xffffffff; curr_font=gx_graphics->getDefaultFont(); gxCanvas *buff=(flags & gxGraphics::GRAPHICS_3D) ? gx_graphics->getBackCanvas() : gx_graphics->getFrontCanvas(); bbSetBuffer( buff ); }
bool graphics_create(){ p_canvas=0; filter=true; gx_driver=0; freeGraphics(); auto_dirty=true; auto_midhandle=false; gx_graphics=gx_runtime->openGraphics( 400,300,0,0,gxGraphics::GRAPHICS_WINDOWED ); if( gx_graphics ){ curr_clsColor=0; curr_color=0xffffffff; curr_font=gx_graphics->getDefaultFont(); bbSetBuffer( bbFrontBuffer() ); return true; } return false; }
void Inventory::freeInv() { freeGraphics(); _names.clear(); _invGraphicsLoaded = false; }
Inventory::~Inventory() { freeGraphics(); }