Avatar utilizator
qPastarnac
Membru Avansat
Membru Avansat
  • Mesaje: 57
    Membru din: 03 Oct 2024, 09:59
  • Reacții: 699
  • Mesaje utile: 0
  • Status: Pierd vremea ^.^
  • Regat: Shinsoo
  • [ID Discord]
  • Medalii

    Avatar utilizator
    qPastarnac
    Membru Avansat
    Membru Avansat
    StateManager Directx9 curatat

    Toate functiile save/restore eliminate
    In loc de ele se foloseste

    STATEMANAGER.PushState();
    STATEMANAGER.Set...()
    STATEMANAGER.PopState();

    In felul acesta evitam problemele in caz ca salvam o setare dar nu o restauram pentru ca se face automat.

    Exemplu:
    Code:
    //inainte 
    	if (!vertices.empty() && SetPDTStream(vertices.data(), vertices.size()))
    	{
    		//start save
    		STATEMANAGER.SaveTextureStageState(0, D3DTSS_COLORARG1, D3DTA_DIFFUSE);
    		STATEMANAGER.SaveTextureStageState(0, D3DTSS_COLOROP, D3DTOP_SELECTARG1);
    		STATEMANAGER.SaveTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_DIFFUSE);
    		STATEMANAGER.SaveTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);
    
    		STATEMANAGER.SetTexture(0, nullptr);
    		STATEMANAGER.SetFVF(D3DFVF_XYZ | D3DFVF_DIFFUSE | D3DFVF_TEX1);
    		STATEMANAGER.DrawPrimitive(D3DPT_TRIANGLEFAN, 0, iTriCount);
    		
    		STATEMANAGER.RestoreTextureStageState(0, D3DTSS_COLORARG1);
    		STATEMANAGER.RestoreTextureStageState(0, D3DTSS_COLOROP);
    		STATEMANAGER.RestoreTextureStageState(0, D3DTSS_ALPHAARG1);
    		STATEMANAGER.RestoreTextureStageState(0, D3DTSS_ALPHAOP);
    		//end restore
    	}
    	
    //dupa
    
    if (!vertices.empty() && SetPDTStream(vertices.data(), vertices.size()))
    {
    	//start save
    	STATEMANAGER.PushState(); // inainte de functiile save apeleaza asta,si in loc de save.. se foloseste set
    	STATEMANAGER.SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_DIFFUSE);
    	STATEMANAGER.SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_SELECTARG1);
    	STATEMANAGER.SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_DIFFUSE);
    	STATEMANAGER.SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);
    
    	STATEMANAGER.SetTexture(0, nullptr);
    	STATEMANAGER.SetFVF(D3DFVF_XYZ | D3DFVF_DIFFUSE | D3DFVF_TEX1);
    	STATEMANAGER.DrawPrimitive(D3DPT_TRIANGLEFAN, 0, iTriCount);
    
    	STATEMANAGER.PopState(); //revenire la setarile initiale,nu mai faci restore manual pentru fiecare setare
    	//end restore
    }
    
    In arhiva este si un tutorial dar este pentru codul meu! Ca referinta sa intelegeti cum functioneaza este foarte bun.
    Codul este usor de adaptat!

    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.

    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.

    Nou Cum descarc de pe TeraBox?

    Afișează detalii Ascunde detalii
    • Este asemănător cu Mega.nz
    • Instalați-vă clientul lor de Download de aici
    • Faceți-vă un cont (vă puteți loga cu Facebook / Google / etc)
    • Nou Dacă nu vreți să descărcați clientul de Download, folosiți acest site
    • Gata! Acum puteți descărca resursele rapid & simplu.

    De ce folosim TeraBox?

    • Este gratuit
    • Primești 1TB de spațiu gratuit la orice cont creat!
    • Este ușor de folosit și varianta premium este foarte ieftină
    • Fișierele nu sunt șterse niciodată
    TeraBox logo

    Înapoi la “Îmbunătățiri”

    Discord ID copiat: