Main Page   Modules   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members  

gsmemory.cpp

Go to the documentation of this file.
00001 /*        Copyright (C) 2000,2001,2002  Sony Computer Entertainment America
00002           
00003           This file is subject to the terms and conditions of the GNU Lesser
00004           General Public License Version 2.1. See the file "COPYING" in the
00005           main directory of this archive for more details.                             */
00006 
00007 #include "GL/ps2gl.h"
00008 
00009 #include "ps2s/gsmem.h"
00010 
00016 static bool GsMemInitted = false;
00017 
00023 // gs mem
00024 
00040 void
00041 pglPrintGsMemAllocation()
00042 {
00043    GS::CMemManager &mm = GS::CMemArea::GetMemManager();
00044    mm.PrintAllocation();
00045 }
00046 
00051 int
00052 pglHasGsMemBeenInitted()
00053 {
00054    return GsMemInitted;
00055 }
00056 
00057 // slots
00058 
00120 pgl_slot_handle_t
00121 pglAddGsMemSlot( int startingPage, int pageLength, unsigned int pixelMode )
00122 {
00123    GS::CMemManager &mm = GS::CMemArea::GetMemManager();
00124    GS::CMemSlot *newSlot = mm.AddSlot( startingPage, pageLength, (GS::tPSM)pixelMode );
00125 
00126    GsMemInitted = true;
00127 
00128    return reinterpret_cast<pgl_slot_handle_t>( newSlot );
00129 }
00130 
00135 void
00136 pglLockGsMemSlot( pgl_slot_handle_t slot_handle )
00137 {
00138    GS::CMemSlot *slot = reinterpret_cast<GS::CMemSlot*>(slot_handle);
00139    slot->Lock();
00140 }
00141 
00146 void
00147 pglUnlockGsMemSlot( pgl_slot_handle_t slot_handle )
00148 {
00149    GS::CMemSlot *slot = reinterpret_cast<GS::CMemSlot*>(slot_handle);
00150    slot->Unlock();
00151 }
00152 
00156 void
00157 pglRemoveAllGsMemSlots()
00158 {
00159    GS::CMemManager &mm = GS::CMemArea::GetMemManager();
00160    mm.RemoveAllSlots();
00161 }
00162  // gs_mem_slots
00164 
00165 // mem area operations
00166 
00190 pgl_area_handle_t
00191 pglCreateGsMemArea( int width, int height, unsigned int pix_format )
00192 {
00193    GS::CMemArea *newArea = new GS::CMemArea( width, height, (GS::tPSM)pix_format );
00194    return reinterpret_cast<pgl_area_handle_t>(newArea);
00195 }
00196 
00200 void
00201 pglDestroyGsMemArea( pgl_area_handle_t mem_area )
00202 {
00203    GS::CMemArea *area = reinterpret_cast<GS::CMemArea*>(mem_area);
00204    delete area;
00205 }
00206 
00217 void
00218 pglAllocGsMemArea( pgl_area_handle_t mem_area )
00219 {
00220    GS::CMemArea *area = reinterpret_cast<GS::CMemArea*>(mem_area);
00221    area->Alloc();
00222 }
00223 
00228 void
00229 pglFreeGsMemArea( pgl_area_handle_t mem_area )
00230 {
00231    GS::CMemArea *area = reinterpret_cast<GS::CMemArea*>(mem_area);
00232    area->Free();
00233 }
00234 
00240 void
00241 pglSetGsMemAreaWordAddr( pgl_area_handle_t mem_area, unsigned int addr )
00242 {
00243    GS::CMemArea *area = reinterpret_cast<GS::CMemArea*>(mem_area);
00244    area->SetWordAddr(addr);
00245 }
00246 
00251 void
00252 pglBindGsMemAreaToSlot( pgl_area_handle_t mem_area, pgl_slot_handle_t mem_slot )
00253 {
00254    GS::CMemArea *area = reinterpret_cast<GS::CMemArea*>(mem_area);
00255    GS::CMemSlot *slot = reinterpret_cast<GS::CMemSlot*>(mem_slot);
00256    slot->Bind( *area, 0 ); // FIXME: current frame number
00257 }
00258 
00262 void
00263 pglUnbindGsMemArea( pgl_area_handle_t mem_area )
00264 {
00265    GS::CMemArea *area = reinterpret_cast<GS::CMemArea*>(mem_area);
00266    area->Unbind();
00267 }
00268 
00273 void
00274 pglLockGsMemArea( pgl_area_handle_t mem_area )
00275 {
00276    GS::CMemArea *area = reinterpret_cast<GS::CMemArea*>(mem_area);
00277    area->Lock();
00278 }
00282 void
00283 pglUnlockGsMemArea( pgl_area_handle_t mem_area )
00284 {
00285    GS::CMemArea *area = reinterpret_cast<GS::CMemArea*>(mem_area);
00286    area->Unlock();
00287 }
00291 int
00292 pglGsMemAreaIsAllocated( pgl_area_handle_t mem_area )
00293 {
00294    GS::CMemArea *area = reinterpret_cast<GS::CMemArea*>(mem_area);
00295    return (int)area->IsAllocated();
00296 }
00300 unsigned int
00301 pglGetGsMemAreaWordAddr( pgl_area_handle_t mem_area )
00302 {
00303    GS::CMemArea *area = reinterpret_cast<GS::CMemArea*>(mem_area);
00304    return area->GetWordAddr();
00305 }
00306  // gs_mem_areas
00308  // gs_mem
00310  // pgl_api

ps2gl version cvs