Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

26.07.2010, 19:46

Problem beim darstellen von Textur...

Hey ho...ich hab mich hier mal ein wenig umgeschaut und muss sagen das mir das Forum echt supi gefällt!

Nun zu meinem Problem:

Ich möchte eine Textur mit einer Auflösung von 800x600 in einem stinknormalen Fenster das genau dieselbe Auflösung hat darstellen...
Klappt soweit ganz gut nur das die Textur einfach größer gezeichnet wird als sie eigendlich ist -.-
Mach das ganze mit Direct3D 9 und dem SDK von Juni 2010, falls das hier jemand interressiert ^^.

Hier noch Code:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
##################################################
bool DXGraphics::CreateDevice(HWND hWnd)
{
HRESULT hr;

CreateD3DObject();
ZeroMemory(&param,sizeof(param));
if(S_OK == hr)
{
param.Windowed = TRUE;
param.BackBufferCount = 1;
param.BackBufferFormat = D3DFMT_UNKNOWN;
param.SwapEffect = D3DSWAPEFFECT_DISCARD;
param.PresentationInterval = D3DPRESENT_INTERVAL_DEFAULT;

hr=obj->CreateDevice(D3DADAPTER_DEFAULT,D3DDEVTYPE_HAL,hWnd,D3DCREATE_HARDWARE_VERTEXPROCESSING, &param, &device);
if (FAILED(hr))
{
hr=obj->CreateDevice(D3DADAPTER_DEFAULT,D3DDEVTYPE_HAL,hWnd,D3DCREATE_SOFTWARE_VERTEXPROCESSING, &param, &device);
if (FAILED(hr))
return FAIL;
}
}
return OK;
}
##################################################
bool DXGraphics::LoadSprite(char* path,float x,float y,float z)
{
HRESULT result;
result= D3DXCreateSprite(device,&Sprite);
if(SUCCEEDED(result))
{
D3DXCreateTextureFromFile(device,path,&texture);
position.x=x;
position.y=y;
position.z=z;
}
else
return FAIL;
return OK;
}
##################################################
bool DXGraphics::DrawSprite()
{
HRESULT res;

res=device->BeginScene();
if(res == S_OK)
{
Sprite->Begin(D3DXSPRITE_ALPHABLEND);
Sprite->Draw(texture,NULL,NULL,&position,0xFFFFFFFF);
Sprite->End();
}
res=device->EndScene();
device->Present(NULL,NULL,NULL,NULL);
return OK;
}





Was hab ich vergessen oder falsch gemacht????? PLS Help ?( ?( ?(

MFG Gingerfish07

:thumbsup:

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »TrikkieMikkie« (26.07.2010, 22:29)


CBenni::O

1x Contest-Sieger

Beiträge: 1 145

Wohnort: Stuttgart

  • Private Nachricht senden

2

26.07.2010, 20:11

Bitte Cpp-Tags benutzen...
([ cpp] (ohne leerzeichen) vor deinen Code und [/ cpp](ebenfalls ohne) dahinter)

So sieht keiner deinen Code an...

mfg CBenni::O

EDIT: Und der Code scheint nicht ausreichend zu sein... Projektionsmatrix? Kameramatrix?
Lad am Besten mal alles an Code hoch (aber nicht hier im Forum!)...
Ein Mitglied der VEGeiCoUndGraSonMaWiGeS Bewegung.
42!
Aufräumen kann jeder, nur das Genie überblickt das Chaos!
Metal will never die!
1. Sppro Gamecontest - mein Beitrag

3

26.07.2010, 22:27

Hast du in deinen Größenberechnungen mit eingeplant, dass WindowRect != ClientRect?
Also Größe der Titelzeile, Menü und Ränder beachtet?
Last but not least kannst du den Sprite auch skalieren (via Transform). ;)

Willkommen im Forum überings! :)


Das mit den Code-Tags hab ich mal erledigt...
fka tm

Werbeanzeige