Hur Presterar Du Med DirectX-blockeringsexemplet?

0 Comments

Vad väntar du på? Klicka här för att ladda ner detta Windows-reparationsverktyg nu.

Om du ser ett exempel på directx Lockrect-felkod hjälper dagens användarhandbok dig.

Syntax

HRESULT LockRect(  [i] UINT-nivå,  [ut] D3DLOCKED_RECT *pLockedRect,  [i] konst RECT *pRect,  [i] DWORD-flaggor);

Inställningar

Pekare till rektangeln som du kan blockera. Genom att ange en pekare på RECT-strukturen i arenan. Om du anger NULL för den här typen av parameter, kommer det smutsiga området att spridas till hela texturen.

Ett hopkok av noll plus eller lås banners som beskriver typen av lås som hela din familj utför. För denna metod är dess riktiga flaggor:

  • D3DLOCK_DISCARD
  • D3DLOCK_NO_DIRTY_UPDATE
  • D3DLOCK_NOSYSLOCK
  • D3DLOCK_READONLY
  • När du använder D3DLOCK_DISCARD kan du inte behöva ange den bästa specifika underkatalogen. Notera

    till varje flaggbeskrivningD3DLOCK

    Returvärde

    directx lockrect exempel

    Om metoden blir framgångsrik är spolningsvärdet D3D_OK. Om alternativet inte fungerar, kan återvändningsvärdet vara D3DERR_INVALIDCALL.

    Texturer som skapats tack vare Are d3dpool_default kan inte blockeras genomgående. Texturer som skapats på media i minnet kan låsas om de resulterar i USAGE_DYNAMIC.

    Smutsiga områden är bara tungt belastade för nivå 0 av en unik struktur av prestandaskäl. Smutsiga jobbområden upptäcks automatiskt när IDirect3DTexture9::LockRect råkar anropas utan en D3DLOCK_NO_DIRTY_UPDATE eller D3DLOCK_READONLY begäran. Se IDirect3DDevice9::UpdateTexture.

    för lite mer information.

    Videominnesschemat kan bara försöka låsas, det måste ändras genom processen att anropa IDirect3DDevice9::UpdateSurface, IDirect3DDevice9::UpdateTexture. Det finns undantag för vissa unika klubbpixelformat som Direct3D 8 verkligen inte känner igen. De kan vara lite mer privata.

    Den här metoden kan inte returnera data från en resurstextur gjord med D3DUSAGE_RENDERTARGET eftersom en sådan beröring så småningom måste allokeras i D3DPOOL_DEFAULT-minnet och därför inte kan stängas. Om du istället använder IDirect3DDevice9::GetRenderTargetData om du vill kopiera kompositionsdata från enheten i internminnet till delat minne.

    Krav

    Målplattform Windows Titel d3d9helper.h (inklusive D3D9.h) Bibel teka D3D9.lib

    Se Se även

  • Minst 6 att läsa
  • Citat: Ursprungligt inlägg när jhq
    Men bara i den här situationen kan nu fungera:

    D3DXCreateTextureFromFileEx(g_pd3dDevice, “banana.bmp”, 256, 256, 1, D3DUSAGE_DYNAMIC, D3DFMT_B8R8GDFAD3D_A8R8G, D3DFMT_A8R8G , 0, 4, NULL , NULL , &g_pTex);

    … …

    g_pTex->LockRect(0, &d3dlock, NULL, D3DLOCK_DISCARD);

    … …

    Detta (när man använder variabla texturer) betyder att nästan allt normalt innehåll i texturen tas, vilket inte är exakt vad jag behöver. Förresten, kan du helt enkelt förstå ögonblicket när en individ behöver en låst textur?

    directx lockrect exempel

    Du använder fortfarande standardpoolen (D3DPOOL_DEFAULT). Rätt besök:

    Sluta slösa tid med datorfel.

    Din dator går långsamt och du får fel? Oroa dig inte, Restoro kan fixa det. Restoro kommer att ta reda på vad som är fel på din dator och reparera Windows-registerproblem som orsakar ett brett spektrum av problem för dig. Du behöver inte vara expert på datorer eller programvara � Restoro gör allt arbete åt dig. Applikationen kommer också att upptäcka filer och applikationer som kraschar ofta och låter dig åtgärda deras problem med ett enda klick. Klicka på detta nu:

  • 1. Ladda ner och installera Reimage
  • 2. Starta programmet och klicka på "Skanna"
  • 3. Klicka på "Reparera" för att åtgärda eventuella fel som upptäckts av skanningen

  • D3DXCreateTextureFromFileEx(g_pd3dDevice, kommer med största sannolikhet att vara "banana.bmp", 256, 256, 3, D3DUSAGE_DYNAMIC, D3DFMT_A8R8G8B8, D3DPOOL_DXD, NU_LLG, NU, 0, 0, 0, 0,0 ", "D3DXCreateTexture.vice, DeEx3gFromd 2dDevice, ", 256, 1, D3DUSAGE_DYNAMIC, D3DFMT_A8R8G8B8, D3DPOOL_SYSTEMMEM, D3DX_DEFAULT, 0, 0, NULL, NULL> >);

    Att specificera ett hanterat systems texturpool har förmågan att sannolikt få Direct3D att behålla en regional kopia av texturen. När du låser en textur, gynnar Direct3D en pekare till den cachade dubbletten, och när du låser upp den laddas de vanligtvis på grafikkortet.

    Men kunden kan inte äta din paj och denna unika artikel. Att låsa en textur innebär att den kan lagras i systemets reminiscens. Alla dessa fram och tillbaka kloner skulle med största sannolikhet bryta varumärkesparallellism.

    Citat: När alla 2D-element och delar är bäst gjorda med pixelskuggningar, är det vanligt med funktioner som LockRect()?

    Tja, det är vad de oundvikligen har använts till. Problemet med Janta är att det inte finns något sätt att påskynda beslutsmetoden på samma sätt jämfört med en helt hårdvarumetod.

    [Redigerad av On Admiral, 19 mars 2009 06:58:24]

    Det vanligaste segmentet läses från designen, som kan finnas i videominnet ("standardpoolen"). Det handlar mest om kopieringsblobbar.

    1. Att läsa från en textur motsvarar läsningsnivå 0 med texturens yta. Se nedan.
    2. Ovanstående delmängd äger en textur.
    3. Läs gränssnittet som identifierar en annan minnespool jämfört med standardsystemet ("hanterat" system), eller högerlås det och kontrollera en ny byte.
    4. ungefär detsamma för en delmängd som är involverad i ytan. Endast uppdaterad och granskad blockeringssektion.

    Nu har vi lämnat dina spår i videominnet ("standardpool"). Detta kan vara vilken som helst iögonfallande yta/texturförbättring som renderingsmål, eventuellt vilken vanlig yta/textur ni alla utvecklat med standardpoolen eller specifikt från bakbufferten. Problemet här är att du inte kan klippa det.

    Detaljerad förklaring (allmän översikt över hela koden nedan):

    1. rt = få den levererade målytan för Can (detta är utan tvekan texturbasen, bakbuffert, etc.)
    2. om rt är (GetDesc, multisample check D3DSURFACE_DESC.MultiSampleType), då: a) skapa en annan rendering avsikt av samma storlek, samma plattform, men utan multisampling; b) StretchRect av rt appliceras på detta helt nya gränssnitt; c) rt Dies = intressant golv (dvs fortsättning på innovativ yta).
    3. off betyder att en yta görs utanför skärmen (CreateOffscreenPlainSurface, Pool)
    4. device->GetRenderTargetData( d3dpool_systemmem rt, off )
    5. går nu över data till renderingsmålet. LockRect(), data, seKlicka på UnlockRect().
    6. Rädda din dator nu. Klicka här för att ladda ner vårt Windows-reparationsverktyg.