Membru Avansat
Membru Avansat
  • Mesaje: 54
    Membru din: 03 Oct 2024, 12:59
  • Reacții: 636
  • Mesaje utile: 0
  • Status: Pierd vremea ^.^
  • Regat: Shinsoo
  • [ID Discord]
  • Contact:

    Medalii

    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.

    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

    Creează-ți un cont sau autentifică-te pentru a participa la discuție

    Trebuie să fii membru pentru a răspunde

    Creează-ți un cont

    Membrii pot crea subiecte noi și pot descărca resurse Metin2 Gratuit!


    Te poți înregistra sau conecta rapid utilizând contul tău de Discord, Github sau Google.

    Înregistrare

    Autentifică-te

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

    Informații

    Utilizatori ce navighează pe acest forum: arsenul01, marcos_impacto și 3 vizitatori

    Discord ID copiat: