
Alle Beiträge von Guybrush Threepwood
-
Vertex Grafiken
Das ist aber glaube ich über 300MB Groß Ja ich benutze es noch genauso wie ich`s oben gepostet habe.
-
Vertex Grafiken
Die Idee hatte ich auch schon. Ich hab 6 Elemente in das Array gschrieben und die entsprechende Größe angegeben, trotzdem hatte ich nur ein Dreieck. Da mein Dreieck aber auch nicht so ganz einwnadfrei dargestellt wird, probiere ich es am besten erst nochmal in dem Original Tutorial aus. Ich schreib dann am Freitag (Mittwoch+Donnerstag=Schule:( )wie`s gelaufen ist.
-
Vertex Grafiken
So ich hab gestern noch mal rumprobiert und wenn ich die Struktur so ändere: CUSTOMVERTEX vertices[] = { { 250.0f, 50.0f, 0.5f, 1.0f, 0xffff0000, }, // x, y, z, rhw, color { 250.0f, 250.0f, 0.5f, 1.0f, 0xff00ff00, }, { 50.0f, 250.0f, 0.5f, 1.0f, 0xff00ffff, }, }; habe ich 2 Dreiecke. Wenn ich 1 Element entferne und dann auch 2*sizeof() schreibe, wird nichts dargestellt (was glaube ich auch verständlich ist), aber wenn ich noch ein Element hinzufüge und 4*sizeof() schreibe, bekomme ich trotzdem das selbe Dreieck:confused:
-
Vertex Grafiken
Du mußt so oder so bis Morgen warten, weil ich zu Hause keinen Internetzugang habe:p
-
Vertex Grafiken
Ja hatte ich eh vor. Weil mir kam noch die Idee das ich bei CreateVertexBuffer() dann auch anstatt 3*sizeof(), 2*sizeof() schreiben könnte/sollte.
-
Vertex Grafiken
Also ich hab die Werte nicht mehr im Kopf und ich kanns hier auch leider nicht ausprobieren weil ich das Direct X 9 SDK hier nicht habe. Ok hier ist mal der ganze Code: #include <windows.h> #include <d3d9.h> LRESULT CALLBACK MainProc(HWND,UINT,WPARAM,LPARAM); HRESULT InitD3D(); HRESULT InitVB(); HRESULT Render(); struct GLOBALS { HWND hMainWindow; IDirect3D9* pD3D; IDirect3DDevice9* pd3dDevice; IDirect3DVertexBuffer9* pVB; }g_={0,0,0,0}; struct CUSTOMVERTEX { FLOAT x, y, z, rhw; // The transformed position for the vertex DWORD color; // The vertex color }; APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE, LPSTR, int nCmdShow) { MSG Msg; WNDCLASS wc; memset(&wc,0,sizeof(WNDCLASS)); wc.hCursor = LoadCursor(0,IDC_ARROW); wc.hInstance = hInstance; wc.lpfnWndProc = MainProc; wc.lpszClassName = "D3D Test"; if (!RegisterClass(&wc)) return FALSE; g_.hMainWindow = CreateWindow("D3D Test","D3D Test", WS_OVERLAPPEDWINDOW, 300,300, 350,300, GetDesktopWindow(),0, hInstance,0); ShowWindow(g_.hMainWindow,nCmdShow); UpdateWindow(g_.hMainWindow); if (InitD3D() != S_OK) { MessageBox(g_.hMainWindow,"Fehler","D3D Test",MB_APPLMODAL); } InitVB(); while(Msg.message != WM_QUIT) { if(PeekMessage(&Msg,NULL,0,0,PM_REMOVE)) { TranslateMessage(&Msg); DispatchMessage(&Msg); } else Render(); } UnregisterClass("D3D Test",hInstance); return Msg.wParam; } LRESULT CALLBACK MainProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam) { switch (Msg) { case WM_DESTROY: { if (g_.pVB != NULL) g_.pVB->Release(); if (g_.pd3dDevice != NULL) g_.pd3dDevice->Release(); if (g_.pD3D != NULL) g_.pD3D->Release(); PostQuitMessage(0); return 0; } default: return DefWindowProc(hWnd,Msg,wParam,lParam); } } HRESULT InitD3D() { D3DPRESENT_PARAMETERS d3dpp; memset(&d3dpp,0,sizeof(D3DPRESENT_PARAMETERS)); d3dpp.Windowed = TRUE; d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD; d3dpp.BackBufferFormat = D3DFMT_UNKNOWN; d3dpp.EnableAutoDepthStencil = TRUE; d3dpp.AutoDepthStencilFormat = D3DFMT_D16; g_.pD3D = Direct3DCreate9(D3D_SDK_VERSION); if (g_.pD3D == NULL) { return E_FAIL; } if (g_.pD3D->CreateDevice(D3DADAPTER_DEFAULT,D3DDEVTYPE_HAL, g_.hMainWindow, D3DCREATE_SOFTWARE_VERTEXPROCESSING, &d3dpp,&g_.pd3dDevice) != D3D_OK) { return E_FAIL; } return S_OK; } HRESULT InitVB() { // Initialize three vertices for rendering a triangle CUSTOMVERTEX vertices[] = { { 150.0f, 50.0f, 0.5f, 1.0f, 0xffff0000, }, // x, y, z, rhw, color { 250.0f, 250.0f, 0.5f, 1.0f, 0xff00ff00, }, { 50.0f, 250.0f, 0.5f, 1.0f, 0xff00ffff, }, }; // Create the vertex buffer. Here we are allocating enough memory // (from the default pool) to hold all our 3 custom vertices. We also // specify the FVF, so the vertex buffer knows what data it contains. if( FAILED( g_.pd3dDevice->CreateVertexBuffer( 3*sizeof(CUSTOMVERTEX), 0, D3DFVF_XYZRHW|D3DFVF_DIFFUSE, D3DPOOL_DEFAULT, &g_.pVB, NULL ) ) ) { return E_FAIL; } // Now we fill the vertex buffer. To do this, we need to Lock() the VB to // gain access to the vertices. This mechanism is required becuase vertex // buffers may be in device memory. VOID* pVertices; if( FAILED( g_.pVB->Lock( 0, sizeof(vertices), (void**)&pVertices, 0 ) ) ) return E_FAIL; memcpy( pVertices, vertices, sizeof(vertices) ); g_.pVB->Unlock(); return S_OK; } HRESULT Render() { g_.pd3dDevice->Clear(0,NULL,D3DCLEAR_TARGET,D3DCOLOR_XRGB(0,0,255),1.0f,0); if( SUCCEEDED( g_.pd3dDevice->BeginScene() ) ) { g_.pd3dDevice->SetStreamSource( 0, g_.pVB, 0, sizeof(CUSTOMVERTEX) ); g_.pd3dDevice->SetFVF(D3DFVF_XYZRHW|D3DFVF_DIFFUSE); g_.pd3dDevice->DrawPrimitive( D3DPT_TRIANGLELIST, 0, 1 ); g_.pd3dDevice->EndScene(); } g_.pd3dDevice->Present(NULL,NULL,NULL,NULL ); return S_OK; } [/PHP]
-
Internet Explorer Versionen bei Windows
Hi, kann mir einer von euch sagen welche Versionen des Internet Explorers standartmäßig bei den verschiedenen Windowsversionen dabei sind? Also bei: Win95 Win98 WinME WinXP WinNT Win2000 Gruß Guybrush
-
Vertex Grafiken
Hi, ich ´hab mir in der letzten Zeit mal ein paar Direct3D 9 Tutoriols angeschaut, aber ich verstehe nie wie die Vertexstrukter aufgebaut werden muß um eine bestimmte Form zu erzielen. Folgende Struktur liefert z.B. ein Buntes Dreieck: CUSTOMVERTEX vertices[] = { { 150.0f, 50.0f, 0.5f, 1.0f, 0xffff0000, }, // x, y, z, rhw, color { 250.0f, 250.0f, 0.5f, 1.0f, 0xff00ff00, }, { 50.0f, 250.0f, 0.5f, 1.0f, 0xff00ffff, }, }; [/PHP] Ich dachte erst das jedes Element für einen Punkt des Dreiecks stehen würde, wenn ich allerdings bestimmte Werte zuweise habe ich aufeinmal 2 Dreicke und wenn ich ein Element entferne ist es immer noch ein Dreieck:confused: Ich bin also etwas verwirrt und hoffe das mir das einer von euch erklären kann Gruß Guybrush
-
Programm läuft im Taskmanager weiter
Komisch, es scheint da wohl einen Unterschied zwischen Dialogfeld bsierenden und "normalen" Anwendungen zu geben.
-
SMS via eMail
Was??? Das heißt ich schicke jemandem ein paar hundert SMS und der muß die dann bezahlen?:eek:
-
Programm läuft im Taskmanager weiter
Naja, wenn dein Programm immer fehlerfrei läuft oder du es nicht per Alt+F4 beendest, dann nicht.
-
Programm läuft im Taskmanager weiter
Das gibt ehrlich gesagt keinen Sinn;) Nach PostQuitMessage() brauchst du kein DestroyWindow() weil eh der Komplette Prozess beendet wird, außerdem sendet DestroyWindow() nur WM_DESTROY an das entsprechende Fenster. Um das Programm in jedem Fall zu beenden sollte man WM_DESTROY auch abfangen, da WM_CLOSE nur auftritt wenn man das Programm über das "X" beendet, oder halt die Nachricht selber schickt. Gruß Guybrush
-
Wer hat wieviel Urlaub?
Ich bin auch Azubi und hab ebenfalls 30 Tage Urlaub
-
Sie wollen das Internet verlassen?
meinst du den ? Ich hab einfach mal nach c64 gesucht;)
-
Programm läuft im Taskmanager weiter
kuck mal im Debuger was passiert wenn du auf das X klickst
-
Programm läuft im Taskmanager weiter
Das passiert, weil wenn du auf das X klickst nur die Nachricht WM_CLOSE gesendet wird. Versuchs mal so: case WM_CLOSE: case WM_DESTROY : { PostQuitMessage (0) ; return 0 ; } Gruß Guybrush
-
Fehlermeldungen Ahhhhhhh...
Du hast dir die Arbeit umsonst gemacht:)
-
Grafikbereich in ein Formular einfügen
Die beiden Funktionen gibt`s auch bei Codeguru, die sind vom selbem Autor: WriteDIB DDBToDIB Ich hab mal kurz durch den Artikel gelesen, aber ich kann mir das irgendwie nicht vorstellen warum die Teile von Fenstern die das Bild überdecken in der Datei mitgespeichert werden. Weil man übergibt der Funktion ja nur das was auch in dem Fenster dargestellt wird:confused: Aber wenns da steht wird`s wohl stimmen.
-
Grafikbereich in ein Formular einfügen
Hi, du hast dich glaube ich verklickt:D Zu deinem Problem hab ich mal was bei Codeguru gesehen, vielleicht hilfts dir ja. Gruß Guybrush
-
Katzenfrage
Achso, hab zwar noch nie was von gehört aber scheint ja praktisch zu sein:D
-
Katzenfrage
Ich hät da mal ne kurze zwischenfrage: tätowieren???
-
Hardware stinkt
Ich weiß gar nicht was ihr habt, ich mag den Geruch nämlich:) Nach einiger Zeit legt er sich normalerweise aber wieder, ich würde einfach warten.
-
Auf variablen anderer Klassen zugreifen?
Hast du die beiden Pointer auf die Klassen auch initialisiert?
-
Extreme Kleidung - Einstellungsgespraech
Es gibt dazu übrigens schon mehrere Threats im Ausbildungsforum. Z.B.: Was soll ich anziehen??? Arbeitskleidung bei Banken Vorstellungsgespräch, was zieh ich an? Gruß Guybrush
-
[Assembler] Labels werden nicht erkannt
Damit bekomme ich die Meldung "Unbekanntes Label JNZ NEAR label1":confused: