#pragma once

#define GPU_ERROR_INIT -1
#define GPU_SUCCESS	0x0

namespace GPUXenon
{
	int GPUXenonInit(void);
	int GPUXenonOpen(void);
	int GPUXenonShutdown(void);
	int GPUXenonClose(void);

	void GPUXenonWriteStatus(unsigned long a);
	void GPUXenonWriteData(unsigned long a);

	unsigned long GPUXenonReadData(void);
	unsigned long GPUXenonReadStatus(void);

	void  GPUXenonWriteDataMem(unsigned long *, int); 
	void  GPUXenonReadDataMem(unsigned long *, int); 

	long GPUXenonDmaChain(unsigned long *a ,unsigned long b);
	void GPUXenonUpdateLace(void);

	long GPUXenonFreeze(unsigned int , GPUFreeze_t *);

	void updateDisplay();
	
	void ChangeDispOffsetsX(void);
	void ChangeDispOffsetsY(void);
	void updateDisplayIfChanged(void);

	__inline void FinishedVRAMRead(void);
	__inline void FinishedVRAMWrite(void);
};
