JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=d6f880cdd899878bceb57c1af49c8021Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Texture Width und Heght ermitteln

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Florian
Super JLI'ler


Alter: 36
Anmeldedatum: 20.06.2003
Beiträge: 302

Medaillen: Keine

BeitragVerfasst am: 05.08.2005, 23:16    Titel: Texture Width und Heght ermitteln Antworten mit Zitat

Hallo

Wie kann ich wenn ich nur eine Texture hab Width und Height herausfinden. Mittels D3DXGetImageInfoFromFlile() geht da ja nichts da
der Pfad vom Bild nicht vorhanden ist.
Da hab ich die Funktion D3DXGetImageInfoFromFileInMemory gefunden und mit der versucht funkt aber nicht. Gibts da eine andere Funktion dafuer?
Kann mir einer Helfen Thx
_________________
Theorie ist, wenn man alles weiss und nichts funktioniert.
Praxis ist, wenn alles funktioniert und keiner weiss warum.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
KI
JLI Master


Alter: 39
Anmeldedatum: 04.07.2003
Beiträge: 965
Wohnort: Aachen
Medaillen: Keine

BeitragVerfasst am: 06.08.2005, 00:18    Titel: Antworten mit Zitat

Benutzt du D3DXCreateTextureFromFileEx zum Laden der Textur?
Da kannst du nämlich als zwölften Parameter einen Zeiger zu einer Variable vom Typ D3DXIMAGE_INFO angeben, die du vorher deklariert hast.
In diese Struktur werden Höhe und Breite reingeschrieben.

D3DXCreateTextureFromFileEx Function

D3DXIMAGE_INFO Structure
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Florian
Super JLI'ler


Alter: 36
Anmeldedatum: 20.06.2003
Beiträge: 302

Medaillen: Keine

BeitragVerfasst am: 06.08.2005, 10:50    Titel: Antworten mit Zitat

Ne ich benutze die D3DXCreateTextureFromFile Funktion um eine Texture zu erstellen. Aber das Problem ist das ich nur ne Texture hab und ich mithilfe dieser die Größe rausfinden moechte.
_________________
Theorie ist, wenn man alles weiss und nichts funktioniert.
Praxis ist, wenn alles funktioniert und keiner weiss warum.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 06.08.2005, 10:58    Titel: Antworten mit Zitat

Fragen wir mal so: Welches Grafikformat? Bitmap? TGA?
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Florian
Super JLI'ler


Alter: 36
Anmeldedatum: 20.06.2003
Beiträge: 302

Medaillen: Keine

BeitragVerfasst am: 06.08.2005, 11:03    Titel: Antworten mit Zitat

Sollt egal sein aber ich benutz haupsächlich PNG.
Gibs da nicht eine einfache DX Funkion Question

THX
_________________
Theorie ist, wenn man alles weiss und nichts funktioniert.
Praxis ist, wenn alles funktioniert und keiner weiss warum.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
GreveN
JLI Master


Alter: 37
Anmeldedatum: 08.01.2004
Beiträge: 901
Wohnort: Sachsen - Dresden
Medaillen: Keine

BeitragVerfasst am: 06.08.2005, 11:10    Titel: Antworten mit Zitat

Wo ist das Problem?

Wenn du eine TGA laden würdest, könntest du das 13. Byte mit 256 multiplizieren, das 12. hinzu addieren und du hättest die Breite. Das 15. mit 256 multiplizieren, das 14. hinzu addieren und du hättest die Weite.
So einfach geht das beim TGA-Format.

Will sagen, such dir fix die Specs des Formates und alles ist gut. Very Happy

Und wenn du unbedingt mit D3DX laden willst, dann machs eben so, wie von KI beschrieben.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Yahoo Messenger MSN Messenger
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 06.08.2005, 11:14    Titel: Antworten mit Zitat

Florian
Direct3D kennt keine Dateien Wink Deshalb bietet Direct3D selbst dafür keine Funktion.
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
KI
JLI Master


Alter: 39
Anmeldedatum: 04.07.2003
Beiträge: 965
Wohnort: Aachen
Medaillen: Keine

BeitragVerfasst am: 06.08.2005, 11:42    Titel: Antworten mit Zitat

Florian hat Folgendes geschrieben:
Sollt egal sein aber ich benutz haupsächlich PNG.
Gibs da nicht eine einfache DX Funkion Question

THX

Ich verstehe dein Problem nicht. Was spricht dagegen die Textur mit D3DXCreateTextureFromFileEx zu laden und sich die Breite und Höhe direkt mitgeben zulassen?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Dragon
Super JLI'ler


Alter: 38
Anmeldedatum: 24.05.2004
Beiträge: 340
Wohnort: Sachsen
Medaillen: Keine

BeitragVerfasst am: 06.08.2005, 12:39    Titel: Antworten mit Zitat

schau dir mal die funktionen D3DXGetImageInfoFromFile an:

CPP:
D3DXIMAGE_INFO ImgInfo;
D3DXGetImageInfoFromFile(filename, &ImgInfo);

widht = ImgInfo.Width;
height = ImgInfo.Height;


ist doch ganz easy und sollte für den angang reichen
_________________
Nur wenn man ein Ziel sieht, kann man es auch treffen.
___________
Mein Leben, Freunde und die Spieleentwicklung
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 06.08.2005, 12:43    Titel: Antworten mit Zitat

D3DXCreateTextureFromFileInMemoryEx Function

--------------------------------------------------------------------------------


Creates a texture from a file in memory. This is a more advanced function than D3DXCreateTextureFromFileInMemory.


Syntax

HRESULT D3DXCreateTextureFromFileInMemoryEx( LPDIRECT3DDEVICE9 pDevice,
LPCVOID pSrcData,
UINT SrcDataSize,
UINT Width,
UINT Height,
UINT MipLevels,
DWORD Usage,
D3DFORMAT Format,
D3DPOOL Pool,
DWORD Filter,
DWORD MipFilter,
D3DCOLOR ColorKey,
D3DXIMAGE_INFO *pSrcInfo,
PALETTEENTRY *pPalette,
LPDIRECT3DTEXTURE9 *ppTexture
);
Parameters

pDevice
[in] Pointer to an IDirect3DDevice9 interface, representing the device to be associated with the texture.
pSrcData
[in] Pointer to the file in memory from which to create the texture.
SrcDataSize
[in] Size of the file in memory, in bytes.
Width
[in] Width in pixels. If this value is zero or D3DX_DEFAULT, the dimensions are taken from the file.
Height
[in] Height, in pixels. If this value is zero or D3DX_DEFAULT, the dimensions are taken from the file.
MipLevels
[in] Number of mip levels requested. If this value is zero or D3DX_DEFAULT, a complete mipmap chain is created.
Usage
[in] 0, D3DUSAGE_RENDERTARGET, or D3DUSAGE_DYNAMIC. Setting this flag to D3DUSAGE_RENDERTARGET indicates that the surface is to be used as a render target. The resource can then be passed to the pNewRenderTarget parameter of the IDirect3DDevice9::SetRenderTarget method. If either D3DUSAGE_RENDERTARGET or D3DUSAGE_DYNAMIC is specified, Pool must be set to D3DPOOL_DEFAULT, and the application should check that the device supports this operation by calling IDirect3D9::CheckDeviceFormat. For more information about using dynamic textures, see Using Dynamic Textures.
Format
[in] Member of the D3DFORMAT enumerated type, describing the requested pixel format for the texture. The returned texture might have a different format from that specified by Format. Applications should check the format of the returned texture. If Format is D3DFMT_UNKNOWN, the format is taken from the file.
Pool
[in] Member of the D3DPOOL enumerated type, describing the memory class into which the texture should be placed.
Filter
[in] Combination of one or more flags controlling how the image is filtered. Specifying D3DX_DEFAULT for this parameter is the equivalent of specifying D3DX_FILTER_TRIANGLE | D3DX_FILTER_DITHER. Each valid filter must contain one of the flags in D3DX_FILTER.
MipFilter
[in] Combination of one or more flags controlling how the image is filtered. Specifying D3DX_DEFAULT for this parameter is the equivalent of specifying D3DX_FILTER_BOX. Each valid filter must contain one of the flags in D3DX_FILTER.
ColorKey
[in] D3DCOLOR value to replace with transparent black, or 0 to disable the colorkey. This is always a 32-bit ARGB color, independent of the source image format. Alpha is significant and should usually be set to FF for opaque color keys. Thus, for opaque black, the value would be equal to 0xFF000000.
pSrcInfo
[in, out] Pointer to a D3DXIMAGE_INFO structure to be filled with a description of the data in the source image file, or NULL.
pPalette
[out] Pointer to a PALETTEENTRY structure, representing a 256-color palette to fill in, or NULL. See Remarks.
ppTexture
[out] Address of a pointer to an IDirect3DTexture9 interface, representing the created texture object.


3. Letzten Parameter ansehen
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Florian
Super JLI'ler


Alter: 36
Anmeldedatum: 20.06.2003
Beiträge: 302

Medaillen: Keine

BeitragVerfasst am: 06.08.2005, 19:46    Titel: Antworten mit Zitat

Hallo also
die D3DXGetImageInfoFromFile() ist mir schon bekannt aber wie schon gesagt ich hab nur dei Textur und kein filename usw;
Dei Funktion D3DXGetImageInfoFromFileInMemory hab ich auch schon gefunden aber irgendwie funktioniert das ganze nich kann mir da einer mal ein Code Beispiel zeige pls


THX
_________________
Theorie ist, wenn man alles weiss und nichts funktioniert.
Praxis ist, wenn alles funktioniert und keiner weiss warum.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
Florian
Super JLI'ler


Alter: 36
Anmeldedatum: 20.06.2003
Beiträge: 302

Medaillen: Keine

BeitragVerfasst am: 06.08.2005, 21:45    Titel: Antworten mit Zitat

Hallo ich glaub ich hab es gefunden denn das prob hatte ich schon einmal hier die loesung muss aber erst noch austesten obs auch so funzt

CPP:
D3DSURFACE_DESC desc;

    lpTexture->GetLevelDesc(0,&desc);
   
    m_Width  = desc.Width;
    m_Height = desc.Height;

_________________
Theorie ist, wenn man alles weiss und nichts funktioniert.
Praxis ist, wenn alles funktioniert und keiner weiss warum.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
Christian Rousselle
Site Admin


Alter: 48
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 06.08.2005, 22:48    Titel: Antworten mit Zitat

Ja, so geht es. Sorry, habe den Post erste jetzt gesehen. Er hat die Texture schon erzeugt. Er will die Infos von der Textur direkt.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Florian
Super JLI'ler


Alter: 36
Anmeldedatum: 20.06.2003
Beiträge: 302

Medaillen: Keine

BeitragVerfasst am: 06.08.2005, 23:02    Titel: Antworten mit Zitat

Jo genau thx trotzdem
_________________
Theorie ist, wenn man alles weiss und nichts funktioniert.
Praxis ist, wenn alles funktioniert und keiner weiss warum.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum