csgo-2018-source/launcher_main/errorrenderloop.h
2021-07-24 21:11:47 -07:00

87 lines
1.9 KiB
C++

//========= Copyright 2010, Valve Corporation, All rights reserved. ============//
#ifndef ERRORRENDERLOOP_HDR
#define ERRORRENDERLOOP_HDR
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/timer.h>
#include <sys/return_code.h>
#include <cell/gcm.h>
#include <stddef.h>
#include <math.h>
#include <sys/memory.h>
#include <sysutil/sysutil_sysparam.h>
#include "ps3/ps3_helpers.h"
class ErrorRenderLoop
{
public:
typedef struct
{
float x, y, z;
float nx, ny, nz;
uint32_t rgba;
} Vertex_t;
ErrorRenderLoop();
int Run( void );
protected:
void *localMemoryAlloc(const uint32_t size) ;
void *localMemoryAlign(const uint32_t alignment,
const uint32_t size);
void setRenderState(void);
void setDrawEnv(void);
int32_t setRenderObject(void);
int32_t initDisplay(void);
void initShader(void);
void setRenderTarget(const uint32_t Index);
void flip(void);
void setVertex(Vertex_t* vertex_buffer);
void setTransforms(float *tm);
public:
/* double buffering */
enum ConstEnum_t{ COLOR_BUFFER_NUM = 2, HOST_SIZE = (1*1024*1024) };
bool m_keepRunning;
uint32_t m_nLocalMemHeap;
uint32_t display_width;
uint32_t display_height;
float display_aspect_ratio;
uint32_t color_pitch;
uint32_t depth_pitch;
uint32_t color_offset[COLOR_BUFFER_NUM];
uint32_t depth_offset;
uint32_t frame_index;
unsigned char *vertex_program_ptr;
unsigned char *fragment_program_ptr;
CGprogram vertex_program;
CGprogram fragment_program;
CGparameter model_view_projection;
void *vertex_program_ucode;
void *fragment_program_ucode;
uint32_t fragment_offset;
uint32_t m_nVertPositionOffset, m_nVertNormalOffset, m_nVertColorOffset, m_nIndexBufferLocalMemoryOffset;
uint32_t color_index ;
uint32_t position_index ;
uint32_t normal_index;
float MVP[16];
Vertex_t *m_pVertexBuffer;
uint16_t *m_pIndexBuffer;
};
extern PS3_GcmSharedData g_gcmSharedData;
#endif