Esempio n. 1
0
void CDuiItemBox::UpdateScroll()
{
    CRect rcClient=m_rcWindow;

    int nPageCols=(rcClient.Width()+m_nSepWid)/(m_nItemWid+m_nSepWid);
    int nPageRows=(rcClient.Height()+m_nSepHei)/(m_nItemHei+m_nSepHei);
    if(nPageCols<1) nPageCols=1;
    int nPageItems=nPageCols*nPageRows;
    if(nPageItems<GetItemCount())
    {
        rcClient.right-=m_nSbWid;
        nPageCols=(rcClient.Width()+m_nSepWid)/(m_nItemWid+m_nSepWid);
        if(nPageCols<1) nPageCols=1;
        nPageItems=nPageCols*nPageRows;
    }


    SCROLLINFO si;
    si.fMask=SIF_RANGE|SIF_PAGE;
    si.nPage=(nPageItems<GetItemCount())?rcClient.Height():0;
    si.nMin=0;
    si.nMax=(GetItemCount()+nPageCols-1)/nPageCols*(m_nItemHei+m_nSepHei)-m_nSepHei;
    SetScrollInfo(si,TRUE);

    SetViewSize(CSize(rcClient.Width(),si.nMax));
    if(si.nPage==0) SetViewOrigin(CPoint(0,0));
    else SetViewOrigin(CPoint(0,GetScrollPos(TRUE)));
}
Esempio n. 2
0
/*
====================
BindForViewOrigin
====================
*/
void idMegaTexture::BindForViewOrigin( const idVec3 viewOrigin ) {

	SetViewOrigin( viewOrigin );

	// borderClamp image goes in texture 0
	GL_SelectTexture( 0 );
	globalImages->borderClampImage->Bind();

	// level images in higher textures, blurriest first
	for ( int i = 0 ; i < 7 ; i++ ) {
		GL_SelectTexture( 1+i );

		if ( i >= numLevels ) {
			globalImages->whiteImage->Bind();

			static float	parms[4] = { -2, -2, 0, 1 };	// no contribution
			qglProgramLocalParameter4fvARB( GL_VERTEX_PROGRAM_ARB, i, parms );
		} else {
			idTextureLevel	*level = &levels[ numLevels-1-i ];
			
			if ( r_showMegaTexture.GetBool() ) {
				if ( i & 1 ) {
					globalImages->blackImage->Bind();
				} else {
					globalImages->whiteImage->Bind();
				}
			} else {
				level->image->Bind();
			}
			qglProgramLocalParameter4fvARB( GL_VERTEX_PROGRAM_ARB, i, level->parms );
		}
	}

	float	parms[4];
	parms[0] = 0;
	parms[1] = 0;
	parms[2] = 0;
	parms[3] = 1;
	qglProgramLocalParameter4fvARB( GL_VERTEX_PROGRAM_ARB, 7, parms );

	parms[0] = 1;
	parms[1] = 1;
	parms[2] = r_terrainScale.GetFloat();
	parms[3] = 1;
	qglProgramLocalParameter4fvARB( GL_VERTEX_PROGRAM_ARB, 8, parms );
}