nulldc-360/plugins/drkPvr/helper_classes.cpp

40 lines
No EOL
802 B
C++

#include "drkPvr.h"
#include "helper_classes.h"
u8* buffer_pool[(64*1024*1024)/ChunkSize];
u32 buffer_pool_count;
u8* GetBuffer()
{
if (buffer_pool_count!=0)
{
u8* rv=buffer_pool[--buffer_pool_count];
//VirtualLock(rv,ChunkSize);
return rv;
}
else
{
u8* ptr=(u8*)malloc(ChunkSize/*+8192*/);
/*DWORD old;
VirtualProtect(ptr,4096,PAGE_NOACCESS,&old);
VirtualProtect(&ptr[ChunkSize+4096],4096,PAGE_NOACCESS,&old);*/
//VirtualAlloc(ptr,ChunkSize,MEM_RESET,PAGE_READWRITE);
//VirtualLock(ptr,ChunkSize);
return ptr /*+4096*/;
}
}
void FreeBuffer(u8* buffer)
{
if (buffer_pool_count!=1024)
{
//VirtualUnlock(buffer,ChunkSize);
//VirtualAlloc(buffer,ChunkSize,MEM_RESET,PAGE_READWRITE);
buffer_pool[buffer_pool_count++]=buffer;
}
else
{
free(buffer/*-4096*/);
}
}