mirror of
https://github.com/pspdev/pspsdk.git
synced 2026-01-12 00:36:50 +00:00
100 lines
2.2 KiB
C
100 lines
2.2 KiB
C
/*
|
|
* PSP Software Development Kit - https://github.com/pspdev
|
|
* -----------------------------------------------------------------------
|
|
* Licensed under the BSD license, see LICENSE in PSPSDK root for details.
|
|
*
|
|
* Copyright (c) 2005 Jesper Svennevid
|
|
*/
|
|
|
|
#include "guInternal.h"
|
|
|
|
void sceGuEnable(int state)
|
|
{
|
|
switch (state)
|
|
{
|
|
case GU_ALPHA_TEST:
|
|
sendCommandi(ALPHA_TEST_ENABLE, 1);
|
|
break;
|
|
case GU_DEPTH_TEST:
|
|
sendCommandi(Z_TEST_ENABLE, 1);
|
|
break;
|
|
case GU_SCISSOR_TEST:
|
|
{
|
|
GuContext *context = &gu_contexts[gu_curr_context];
|
|
int orig = (context->scissor_start[1] << 10) | context->scissor_start[0];
|
|
int end = (context->scissor_end[1] << 10) | context->scissor_end[0];
|
|
|
|
context->scissor_enable = 1;
|
|
sendCommandi(SCISSOR1, orig);
|
|
sendCommandi(SCISSOR2, end);
|
|
sendCommandi(REGION1, orig);
|
|
sendCommandi(REGION2, end);
|
|
}
|
|
break;
|
|
case GU_STENCIL_TEST:
|
|
sendCommandi(STENCIL_TEST_ENABLE, 1);
|
|
break;
|
|
case GU_BLEND:
|
|
sendCommandi(ALPHA_BLEND_ENABLE, 1);
|
|
break;
|
|
case GU_CULL_FACE:
|
|
sendCommandi(CULL_FACE_ENABLE, 1);
|
|
break;
|
|
case GU_DITHER:
|
|
sendCommandi(DITHER_ENABLE, 1);
|
|
break;
|
|
case GU_FOG:
|
|
sendCommandi(FOG_ENABLE, 1);
|
|
break;
|
|
case GU_CLIP_PLANES:
|
|
sendCommandi(DEPTH_CLIP_ENABLE, 1);
|
|
break;
|
|
case GU_TEXTURE_2D:
|
|
sendCommandi(TEXTURE_ENABLE, 1);
|
|
break;
|
|
case GU_LIGHTING:
|
|
sendCommandi(LIGHTING_ENABLE, 1);
|
|
break;
|
|
case GU_LIGHT0:
|
|
sendCommandi(LIGHT_ENABLE0, 1);
|
|
break;
|
|
case GU_LIGHT1:
|
|
sendCommandi(LIGHT_ENABLE1, 1);
|
|
break;
|
|
case GU_LIGHT2:
|
|
sendCommandi(LIGHT_ENABLE2, 1);
|
|
break;
|
|
case GU_LIGHT3:
|
|
sendCommandi(LIGHT_ENABLE3, 1);
|
|
break;
|
|
case GU_LINE_SMOOTH:
|
|
sendCommandi(ANTI_ALIAS_ENABLE, 1);
|
|
break;
|
|
case GU_PATCH_CULL_FACE:
|
|
sendCommandi(PATCH_CULL_ENABLE, 1);
|
|
break;
|
|
case GU_COLOR_TEST:
|
|
sendCommandi(COLOR_TEST_ENABLE, 1);
|
|
break;
|
|
case GU_COLOR_LOGIC_OP:
|
|
sendCommandi(LOGIC_OP_ENABLE, 1);
|
|
break;
|
|
case GU_FACE_NORMAL_REVERSE:
|
|
sendCommandi(NORMAL_REVERSE, 1);
|
|
break;
|
|
case GU_PATCH_FACE:
|
|
sendCommandi(PATCH_FACING, 1);
|
|
break;
|
|
case GU_FRAGMENT_2X:
|
|
{
|
|
GuContext *context = &gu_contexts[gu_curr_context];
|
|
context->fragment_2x = 0x10000;
|
|
sendCommandi(TEX_FUNC, 0x10000 | context->texture_function);
|
|
}
|
|
break;
|
|
}
|
|
|
|
if (state < GU_MAX_STATUS)
|
|
gu_states |= (1 << state);
|
|
}
|