AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Directx bitmap stretchen/Skalieren
Thema durchsuchen
Ansicht
Themen-Optionen

Directx bitmap stretchen/Skalieren

Ein Thema von EWeiss · begonnen am 2. Jan 2014 · letzter Beitrag vom 4. Jan 2014
 
EWeiss
(Gast)

n/a Beiträge
 
#13

AW: Directx bitmap stretchen/Skalieren

  Alt 2. Jan 2014, 20:51
Was den Screenshot angeht, ist die GDI Methode, laut eines Artikels, den ich letztens gelesen habe, sogar noch schneller, als es per OffscreenSurface zu machen. Aber du hast natürlich recht, dass du per GDI wohl keine Hardware Accellerated Windows capturen kannst.

Ich schaue, wenn ich daheim bin, nochmal ob ich es über den Umweg über eine Textur hinbekomme.
Ja aber nur wenn man den Buffer nicht selbst zuweist siehe(scrSurface.LockRect) und das über GetFrontBufferData regelt.
Das bremst das ganze natürlich aus.
Bei einem ScreenShot spielt das keine rolle in einer Renderscene hingegen schon.

Link zu dem Thema
Ich habe mal versucht seine Methode nach zu verfolgen.. aber auch hier keine Chance.

Zitat von dort!
  1. Via CreateRenderTarget() eine temporäre Render-Target-Textur anlegen (ohne AA und in dem Format, das man haben will). Das ist das einzige, wo StretchRect() den Back Buffer reinkopieren kann.
  2. Via StretchRect() den Back Buffer in das temporäre Render Target kopieren. Dabei wird das Antialiasing aufgelöst.
  3. Via CreateOffscreenPlainSurface() einen Systemspeicherpuffer anlegen. Muss unbedingt im D3DPOOL_SYSTEMMEM liegen, weil GetRenderTargetData() nur dorthin kopieren kann;
    und dasselbe Format haben wie das temporäre Render Target.
  4. Via GetRenderTargetData() das temporäre Render Target in den Systemspeicherpuffer kopieren.
  5. Lock() benutzen, um auf die Daten zuzugreifen.


Zitat:
Direct3D9: (ERROR) :If the destination surface is an offscreen plain surface, the source must also be an offscreen plain. StretchRect failed
Danke dir das du versuchst mir weiter zu helfen.


gruss

Geändert von EWeiss ( 2. Jan 2014 um 21:14 Uhr)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:14 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz