예제 #1
0
void OGLVideoMupenPlus::_swapBuffers()
{
	// if emulator defined a render callback function, call it before buffer swap
	if (renderCallback != NULL) {
		glUseProgram(0);
		if (config.frameBufferEmulation.N64DepthCompare == 0) {
			glViewport(0, getHeightOffset(), getScreenWidth(), getScreenHeight());
			gSP.changed |= CHANGED_VIEWPORT;
		}
		gDP.changed |= CHANGED_COMBINE;
		(*renderCallback)((gDP.changed&CHANGED_CPU_FB_WRITE) == 0 ? 1 : 0);
	}
	CoreVideo_GL_SwapBuffers();
}
void DisplayWindowMupen64plus::_swapBuffers()
{
	// if emulator defined a render callback function, call it before buffer swap
	if (renderCallback != nullptr) {
		gfxContext.resetShaderProgram();
		if (config.frameBufferEmulation.N64DepthCompare == 0) {
			gfxContext.setViewport(0, getHeightOffset(), getScreenWidth(), getScreenHeight());
			gSP.changed |= CHANGED_VIEWPORT;
		}
		gDP.changed |= CHANGED_COMBINE;
		(*renderCallback)((gDP.changed&CHANGED_CPU_FB_WRITE) == 0 ? 1 : 0);
	}
	CoreVideo_GL_SwapBuffers();
}
void BbqOutOfCoreDataSource::changed(ConstFieldMaskArg whichField, 
                                     UInt32            origin,
                                     BitVector         details)
{
    Inherited::changed(whichField, origin, details);

    if(0x0000 != (whichField & (FilenameFieldMask     |
                                HeightScaleFieldMask  |
                                HeightOffsetFieldMask |
                                SampleSpacingFieldMask)))
    {
        initialize(getFilename().c_str(),
                   getHeightScale  (),
                   getHeightOffset (),
                   getSampleSpacing());
        
        
        const BbqDataSourceInformation &bbqInfo = 
            this->getInformation();
        
        
        fprintf(stderr, "%d %d\n",
                bbqInfo.levelCount,
                bbqInfo.nodeCount);
        
        fprintf(stderr, "%d %d %d\n",
                bbqInfo.heightTileSize,
                bbqInfo.heightSampleCount[0],
                bbqInfo.heightSampleCount[1]);
        
        fprintf(stderr, "%f %f %f\n",
                bbqInfo.heightScale,
                bbqInfo.heightOffset,
                bbqInfo.sampleSpacing);
    }
}