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
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 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 |
#include <Windows.h> #include "ELF\Core.h" #include "ElfToolkit\ColorQube.h" #include "ElfToolkit\Triangle.h" HWND hWnd; ELF::Core::Core *c; LRESULT CALLBACK WndClb(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { if(message == WM_KEYDOWN && wParam == VK_ESCAPE) { PostQuitMessage(0); return 0; } else if(message == WM_KEYDOWN && wParam == VK_MBUTTON) { } return DefWindowProc(hWnd, message, wParam, lParam); } bool CreateFrame(HINSTANCE Instance) { WNDCLASS window = {0}; window.hbrBackground = HBRUSH(GetStockObject(WHITE_BRUSH)); window.hCursor = LoadCursor(NULL, IDC_ARROW); window.hIcon = LoadIcon(NULL, IDC_ARROW); window.hInstance = Instance; window.lpfnWndProc = WndClb; window.lpszClassName = L"Main Window"; window.style = CS_HREDRAW | CS_VREDRAW | WS_MAXIMIZEBOX; RegisterClass(&window); hWnd = CreateWindowEx(NULL, window.lpszClassName, L"Window Anwendung", WS_VISIBLE, 0,0,512,512, NULL, NULL, Instance, NULL); if(hWnd == NULL) { return false; } else { c = new ELF::Core::Core(hWnd); return true; } } bool Run(){ MSG msg = {0}; while(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) { if(msg.message == WM_QUIT) { return false; } DispatchMessage(&msg); TranslateMessage(&msg); } return true; } void InitialScene() { ELF::Render::MaterialData *data1 = new ELF::Render::MaterialData(0.0f, 1.0f, 0.0f, 1.0f, 1.0f, 1.0f, 0.0f, 0.0f); ELF::Render::MaterialData *data2 = new ELF::Render::MaterialData(-1.0f, -1.0f, 0.0f, 1.0f, 1.0f, 1.0f, 0.0f, 0.0f); ELF::Render::MaterialData *data3 = new ELF::Render::MaterialData(1.0f, -1.0f, 0.0f, 1.0f, 1.0f, 1.0f, 0.0f, 0.0f); ELF::Render::Material *material = new ELF::Render::Material(new ELF::Render::Color(0.2f, 0.5f, 0.7f)); material->SetTexture2D(NULL); material->AddMaterialData(data1); material->AddMaterialData(data2); material->AddMaterialData(data3); ELF::Core::ElfElement *element = new ELF::Core::ElfElement("Element", new ELF::Math::Matrix3(0.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f)); element->AddMaterial(material); ELFToolkit::Geometry::ColorQube *Qube = new ELFToolkit::Geometry::ColorQube(new ELF::Render::Color(0.5f, 0.5f, 0.5f), new ELF::Math::Vector3(0.0f, 0.0f, 0.0f), new ELF::Math::Size3(0.2f, 0.2f, 0.2f)); ELFToolkit::Geometry::Triangle *Triangle = new ELFToolkit::Geometry::Triangle(new ELF::Render::Color(0.3f, 0.3f, 0.3f), new ELF::Math::Vector3(0.0f, 0.0f, 0.0f), new ELF::Math::Size2(0.1f, 0.1f)); ELF::Core::ElfScene *scene = new ELF::Core::ElfScene("Scene1"); scene->AddElement(Triangle->GetElement()); c->AddScene(scene); c->ChangeScene(0); } int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { if(!CreateFrame(hInstance)) { return 0; } InitialScene(); c->InitialScene(); while(Run()) { c->RenderScene(); } return 0; } |
C-/C++-Quelltext |
|
1 |
ELF::Render::Material(new ELF::Render::Color(0.2f, 0.5f, 0.7f) |
Zitat
Der RCCSWU (RandomCamelCaseSomtimesWithUndersquare) Stil bricht auch mal mit den veraltet strukturierten Denkmustern und erlaubt dem Entwickler seine Kreativität zu entfalten.
Community-Fossil
Aber warum denn ein eigenes Texturformat? Klar bei Modellen schreibe ich auch lieber direkt die Daten in eine Datei, aber was hat das bei Texturen für einen Vorteil? Keiner wird lust haben, jede Textur umzuwandeln...
Und Strings splitten als Helferlein bezeichnen? Schon mal in den Konstruktor von std::string geguckt?
Zitat von »http://www.cplusplus.com/reference/string/string/string/«
substring (3)
string (const string& str, size_t pos, size_t len = npos);
Zitat
Der RCCSWU (RandomCamelCaseSomtimesWithUndersquare) Stil bricht auch mal mit den veraltet strukturierten Denkmustern und erlaubt dem Entwickler seine Kreativität zu entfalten.
Werbeanzeige