예제 #1
0
void PACKSPU_APIENTRY packspu_Disable( GLenum cap )
{
    if (cap!=GL_LIGHT_MODEL_TWO_SIDE)
    {
        if (cap == GL_TEXTURE_2D)
        {
            if (g_VDbgBreakEnableDisable & CRDBG_BREAK_DISABLE_TEXTURE_2D) { RT_BREAKPOINT();}
        }
        else if (cap == GL_TEXTURE_RECTANGLE_NV)
        {
            if (g_VDbgBreakEnableDisable & CRDBG_BREAK_DISABLE_TEXTURE_RECTANGLE) { RT_BREAKPOINT();}
        }

        crStateDisable(cap);

        if (pack_spu.swap)
            crPackDisableSWAP(cap);
        else
            crPackDisable(cap);
    }
    else
    {
        static int g_glmts0_warn=0;
        if (!g_glmts0_warn)
        {
            crWarning("glDisable(GL_LIGHT_MODEL_TWO_SIDE) converted to valid glLightModeli(GL_LIGHT_MODEL_TWO_SIDE,0)");
            g_glmts0_warn=1;
        }
        crStateLightModeli(GL_LIGHT_MODEL_TWO_SIDE, 0);
        crPackLightModeli(GL_LIGHT_MODEL_TWO_SIDE, 0);
    }
}
예제 #2
0
파일: load.c 프로젝트: bhanug/virtualbox
LONG WINAPI vboxVDbgVectoredHandler(struct _EXCEPTION_POINTERS *pExceptionInfo)
{
    PEXCEPTION_RECORD pExceptionRecord = pExceptionInfo->ExceptionRecord;
    PCONTEXT pContextRecord = pExceptionInfo->ContextRecord;
    switch (pExceptionRecord->ExceptionCode)
    {
        case EXCEPTION_BREAKPOINT:
        case EXCEPTION_ACCESS_VIOLATION:
        case EXCEPTION_STACK_OVERFLOW:
        case EXCEPTION_ARRAY_BOUNDS_EXCEEDED:
        case EXCEPTION_FLT_DIVIDE_BY_ZERO:
        case EXCEPTION_FLT_INVALID_OPERATION:
        case EXCEPTION_INT_DIVIDE_BY_ZERO:
        case EXCEPTION_ILLEGAL_INSTRUCTION:
            if (g_VBoxVehFlags & VBOXVEH_F_BREAK)
            {
                BOOL fBreak = TRUE;
#ifndef DEBUG_misha
                if (pExceptionRecord->ExceptionCode == EXCEPTION_BREAKPOINT)
                {
                    HANDLE hProcess = GetCurrentProcess();
                    BOOL fDebuggerPresent = FALSE;
                    /* we do not want to generate breakpoint exceptions recursively, so do it only when running under debugger */
                    if (CheckRemoteDebuggerPresent(hProcess, &fDebuggerPresent))
                        fBreak = !!fDebuggerPresent;
                    else
                        fBreak = FALSE; /* <- the function has failed, don't break for sanity */
                }
#endif

                if (fBreak)
                {
                    RT_BREAKPOINT();
                }
            }

            if (g_VBoxVehFlags & VBOXVEH_F_DUMP)
                vboxMdMinidumpCreate(pExceptionInfo);

            if (g_VBoxVehFlags & VBOXVEH_F_EXIT)
                exit(1);
            break;
        default:
            break;
    }
    return EXCEPTION_CONTINUE_SEARCH;
}