Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Florian Super JLI'ler
Alter: 36 Anmeldedatum: 20.06.2003 Beiträge: 302
Medaillen: Keine
|
Verfasst am: 05.08.2005, 22:16 Titel: Texture Width und Heght ermitteln |
|
|
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 |
|
|
KI JLI Master
Alter: 39 Anmeldedatum: 04.07.2003 Beiträge: 965 Wohnort: Aachen Medaillen: Keine
|
Verfasst am: 05.08.2005, 23:18 Titel: |
|
|
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 |
|
|
Florian Super JLI'ler
Alter: 36 Anmeldedatum: 20.06.2003 Beiträge: 302
Medaillen: Keine
|
Verfasst am: 06.08.2005, 09:50 Titel: |
|
|
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 |
|
|
Patrick Dark JLI Master
Anmeldedatum: 25.10.2004 Beiträge: 1895 Wohnort: Düren Medaillen: Keine
|
|
Nach oben |
|
|
Florian Super JLI'ler
Alter: 36 Anmeldedatum: 20.06.2003 Beiträge: 302
Medaillen: Keine
|
Verfasst am: 06.08.2005, 10:03 Titel: |
|
|
Sollt egal sein aber ich benutz haupsächlich PNG.
Gibs da nicht eine einfache DX Funkion
THX _________________ Theorie ist, wenn man alles weiss und nichts funktioniert.
Praxis ist, wenn alles funktioniert und keiner weiss warum. |
|
Nach oben |
|
|
GreveN JLI Master
Alter: 38 Anmeldedatum: 08.01.2004 Beiträge: 901 Wohnort: Sachsen - Dresden Medaillen: Keine
|
Verfasst am: 06.08.2005, 10:10 Titel: |
|
|
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.
Und wenn du unbedingt mit D3DX laden willst, dann machs eben so, wie von KI beschrieben. |
|
Nach oben |
|
|
Patrick Dark JLI Master
Anmeldedatum: 25.10.2004 Beiträge: 1895 Wohnort: Düren Medaillen: Keine
|
|
Nach oben |
|
|
KI JLI Master
Alter: 39 Anmeldedatum: 04.07.2003 Beiträge: 965 Wohnort: Aachen Medaillen: Keine
|
Verfasst am: 06.08.2005, 10:42 Titel: |
|
|
Florian hat Folgendes geschrieben: | Sollt egal sein aber ich benutz haupsächlich PNG.
Gibs da nicht eine einfache DX Funkion
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 |
|
|
Dragon Super JLI'ler
Alter: 38 Anmeldedatum: 24.05.2004 Beiträge: 340 Wohnort: Sachsen Medaillen: Keine
|
Verfasst am: 06.08.2005, 11:39 Titel: |
|
|
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 |
|
|
Patrick Dark JLI Master
Anmeldedatum: 25.10.2004 Beiträge: 1895 Wohnort: Düren Medaillen: Keine
|
Verfasst am: 06.08.2005, 11:43 Titel: |
|
|
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 |
|
|
Florian Super JLI'ler
Alter: 36 Anmeldedatum: 20.06.2003 Beiträge: 302
Medaillen: Keine
|
Verfasst am: 06.08.2005, 18:46 Titel: |
|
|
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 |
|
|
Florian Super JLI'ler
Alter: 36 Anmeldedatum: 20.06.2003 Beiträge: 302
Medaillen: Keine
|
Verfasst am: 06.08.2005, 20:45 Titel: |
|
|
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 |
|
|
Christian Rousselle Site Admin
Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 06.08.2005, 21:48 Titel: |
|
|
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 |
|
|
Florian Super JLI'ler
Alter: 36 Anmeldedatum: 20.06.2003 Beiträge: 302
Medaillen: Keine
|
Verfasst am: 06.08.2005, 22:02 Titel: |
|
|
Jo genau thx trotzdem _________________ Theorie ist, wenn man alles weiss und nichts funktioniert.
Praxis ist, wenn alles funktioniert und keiner weiss warum. |
|
Nach oben |
|
|
|