Beispiel #1
0
//----------------------------------------------------------------------------//
void OgreTextureTarget::declareRenderSize(const Sizef& sz)
{
    // exit if current size is enough
    if ((d_area.getWidth() >= sz.d_width) && (d_area.getHeight() >=sz.d_height))
        return;

    Ogre::TexturePtr rttTex = Ogre::TextureManager::getSingleton().createManual(
        OgreTexture::getUniqueName(),
        Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME,
        Ogre::TEX_TYPE_2D, sz.d_width, sz.d_height, 1, 0, Ogre::PF_A8R8G8B8,
        Ogre::TU_RENDERTARGET);

    d_renderTarget = rttTex->getBuffer()->getRenderTarget();

    Rectf init_area(
        Vector2f(0, 0),
        Sizef(d_renderTarget->getWidth(), d_renderTarget->getHeight())
    );

    setArea(init_area);

    // delete viewport and reset ptr so a new one is generated.  This is
    // required because we have changed d_renderTarget so need a new VP also.
    delete d_viewport;
    d_viewport = 0;

    // because Texture takes ownership, the act of setting the new ogre texture
    // also ensures any previous ogre texture is released.
    d_CEGUITexture->setOgreTexture(rttTex, true);

    clear();
}
Beispiel #2
0
//----------------------------------------------------------------------------//
void OgreWindowTarget::initRenderTarget(Ogre::RenderTarget& target)
{
    d_renderTarget = ⌖

    Rectf init_area(glm::vec2(0.0f, 0.0f),
                    Sizef(static_cast<float>(d_renderTarget->getWidth()), 
                          static_cast<float>(d_renderTarget->getHeight())) );

    setArea(init_area);
}
//----------------------------------------------------------------------------//
OpenGLViewportTarget::OpenGLViewportTarget(OpenGLRenderer& owner) :
    OpenGLRenderTarget(owner)
{
    // viewport area defaults to whatever the current OpenGL viewport is set to
    GLint vp[4];
    glGetIntegerv(GL_VIEWPORT, vp);

    Rect init_area(Vector2(static_cast<float>(vp[0]), static_cast<float>(vp[1])),
                   Size(static_cast<float>(vp[2]), static_cast<float>(vp[3])));

    setArea(init_area);
}
Beispiel #4
0
int main(){
	int i, j;
	state_t *statep;
	//popolo le aree della ROM
	init_area(INT_NEWAREA, (memaddr) int_handler);
	init_area(TLB_NEWAREA, (memaddr) tlb_handler);
	init_area(PGMTRAP_NEWAREA, (memaddr) trap_handler);
	init_area(SYSBK_NEWAREA, (memaddr) sys_handler);
	//inizializzo le strutture di phase1
	initPcbs();
	initASL();
	//inizializzo le variabili di sistema
	process_count = 0;
	softblock_count = 0;
	//mappa dei process id liberi
	for( i = 0; i < MAXPROC ; i++ ) pid_map[i] = 0;
	//array di puntatori ai processi attivi
	for( i = 0; i < MAXPROC ; i++ ) activeProcesses[i] = NULL;
	//semafori dei device
	for(i = 0; i < MAX_DEVICES; i++) devSem[i] = 0;
    	//registri di stato da conservare dei device
	for(i = 0; i < MAX_DEVICES; i++) devStatus[i] = 0;
	//tempo di gestione degli interrupt
	for(i = 0; i < MAX_DEVICES; i++) interruptTime[i] = 0;

	if( !((first = allocPcb()) && (twiddle = allocPcb()))){
		PANIC();
	}

	processSet( twiddle, (memaddr) idle, PRIO_IDLE);	//il processo idle ha id 1
	
	processSet( first, (memaddr) test, PRIO_NORM );

	current_process = NULL;
	process_count++;
	scheduler();
}