void XenonGLInit(){ // init video xe=&_xe; Xe_Init(xe); edram_init(xe); Xe_SetRenderTarget(xe, Xe_GetFramebufferSurface(xe)); static const struct XenosVBFFormat vbf = { 4, { {XE_USAGE_POSITION, 0, XE_TYPE_FLOAT4}, {XE_USAGE_TEXCOORD, 0, XE_TYPE_FLOAT2}, {XE_USAGE_TEXCOORD, 1, XE_TYPE_FLOAT2}, {XE_USAGE_COLOR, 0, XE_TYPE_UBYTE4}, } }; pPixelShader = Xe_LoadShaderFromMemory(xe, (void*) g_xps_ps_main); Xe_InstantiateShader(xe, pPixelShader, 0); pVertexShader = Xe_LoadShaderFromMemory(xe, (void*) g_xvs_vs_main); Xe_InstantiateShader(xe, pVertexShader, 0); Xe_ShaderApplyVFetchPatches(xe, pVertexShader, 0, &vbf); // Create vb pVbGL = Xe_CreateVertexBuffer(xe, XE_MAX_VERTICES); xe_Vertices = Xe_VB_Lock(xe, pVbGL, 0, XE_MAX_VERTICES, XE_LOCK_WRITE); Xe_VB_Unlock(xe, pVbGL); // init matrices XeGlInitializeMatrix(&projection_matrix); XeGlInitializeMatrix(&modelview_matrix); // init vertices xe_NumVerts = 0; xe_CurrentColor.u32 = 0xFFFFFFFF; // init textures // not yet ... Xe_InvalidateState(xe); Xe_SetClearColor(xe, 0); }
void XenonGLInit(){ // init video xe=&_xe; Xe_Init(xe); edram_init(xe); Xe_SetRenderTarget(xe, Xe_GetFramebufferSurface(xe)); static const struct XenosVBFFormat vbf = { 4, { {XE_USAGE_POSITION, 0, XE_TYPE_FLOAT4}, {XE_USAGE_TEXCOORD, 0, XE_TYPE_FLOAT2}, {XE_USAGE_TEXCOORD, 1, XE_TYPE_FLOAT2}, {XE_USAGE_COLOR, 0, XE_TYPE_UBYTE4}, } }; struct XenosSurface * fb = Xe_GetFramebufferSurface(xe); pPixelTextureShader = Xe_LoadShaderFromMemory(xe, (void*) g_xps_ps_texture); Xe_InstantiateShader(xe, pPixelTextureShader, 0); pPixelModulateShader = Xe_LoadShaderFromMemory(xe, (void*) g_xps_ps_modulate); Xe_InstantiateShader(xe, pPixelModulateShader, 0); pPixelModulateShader2 = Xe_LoadShaderFromMemory(xe, (void*) g_xps_ps_modulate_2); Xe_InstantiateShader(xe, pPixelModulateShader2, 0); pPixelColorShader = Xe_LoadShaderFromMemory(xe, (void*) g_xps_ps_color); Xe_InstantiateShader(xe, pPixelColorShader, 0); pCurrentPs = g_xps_ps_color; pCurrentTexturedPs = g_xps_ps_texture; pVertexShader = Xe_LoadShaderFromMemory(xe, (void*) g_xvs_vs_main); Xe_InstantiateShader(xe, pVertexShader, 0); Xe_ShaderApplyVFetchPatches(xe, pVertexShader, 0, &vbf); // Create vb pVbGL = Xe_CreateVertexBuffer(xe, XE_MAX_VERTICES * sizeof(glVerticesFormat_t)); xe_Vertices = Xe_VB_Lock(xe, pVbGL, 0, XE_MAX_VERTICES * sizeof(glVerticesFormat_t), XE_LOCK_WRITE); Xe_VB_Unlock(xe, pVbGL); // Create indices pIbGL = Xe_CreateIndexBuffer(xe, XE_MAX_INDICES_PER_DRAW, XE_FMT_INDEX16); xe_indices = Xe_IB_Lock(xe, pIbGL, 0, XE_MAX_INDICES_PER_DRAW, XE_LOCK_WRITE); Xe_IB_Unlock(xe, pIbGL); // init matrices XeGlInitializeMatrix(&projection_matrix); XeGlInitializeMatrix(&modelview_matrix); // frontbuffer = Xe_CreateTexture(xe, fb->width, fb->height, 0, XE_FMT_8888 | XE_FMT_BGRA, 1); // init vertices xe_NumVerts = 0; xe_NumIndices = 0; xe_CurrentColor.u32 = 0x0; // init textures XeGLInitTextures(); // init states XeInitStates(); // not yet ... Xe_InvalidateState(xe); Xe_SetClearColor(xe, 0); GL_InitShaderCache(); }