OldSchoolHack

Registrieren / Anmelden Deutsch

Benutzersuche: Jules19

Such-Informationen
Jules19
Themen im Forum
Thema Forum Letzter Beitrag Beiträge Zugriffe
icon

Go to first new post String-Drawing funktioniert nicht Erstellt am: So 24. Jan 2016, 01:00

Jules19

preview Vorschau

Go To Post

Komisch, dass es damals ging... wtf?!
Mit der neuen Aktualisierung geht es nun. In Direct3D9ExRenderer.cpp musst du noch die Pfade anpassen (Zeile 3 bis 6):

TEXT Code:
  1. #include "../Direct3D9/Direct3D9GeometryBuffer.hpp"
  2. #include "../Direct3D9/Direct3D9RenderTarget.hpp"
  3. #include "../Direct3D9/Direct3D9ViewportTarget.hpp"
  4. #include "../Direct3D9/Direct3D9TextureTarget.hpp"

Interessante Änderung, die da nötig ist. Ist ja an sich nicht viel. Mit meinem nicht wirklich vorhandenen Wissen über DirectX hätte ich den Fehler nie gefunden.

Danke!
Bugtracker

So 24. Jan 2016, 16:27

von KN4CK3R Go to last post
5 1151
icon

Go to first new post String-Drawing funktioniert nicht Erstellt am: So 24. Jan 2016, 01:00

Jules19

preview Vorschau

Go To Post

Hi,

zuletzt habe ich OSHGui 2014 verwendet. Dort ging das String-Drawing noch. Ich habe nun die neueste trunk-Version geladen.
Seitdem crasht es bei Strings. Ich vermutete erstmal, dass die Font nicht geladen werden konnte, aber...


TEXT Code:
  1. font = shared_ptr {lineSpacing=0.000000000 pointSize=8.00000000 antiAliased=false ...} [1 strong ref, 1 weak ref] [make_shared]


Ist also alles wie gewollt (Arial, 8.0f, false - genau wie im Sample). Code zum rendern:

TEXT Code:
  1. g.DrawString("bla", Application::Instance().GetDefaultFont(), Drawing::Color::Green(), Drawing::PointF(500, 500));

Hier ist der Call-Stack:
TEXT Code:
  1. meinHack.dll!OSHGui::Drawing::Direct3D9Texture::CreateDirect3D9Texture(const OSHGui::Drawing::Size<float> & size, _D3DFORMAT format) Zeile 269
  2. meinHack.dll!OSHGui::Drawing::Direct3D9Texture::Direct3D9Texture(OSHGui::Drawing::Direct3D9Renderer & _owner, const OSHGui::Drawing::Size<float> & _size) Zeile 173
  3. meinHack.dll!OSHGui::Drawing::Direct3D9Renderer::CreateTexture(const OSHGui::Drawing::Size<float> & size) Zeile 148
  4. meinHack.dll!OSHGui::Drawing::FreeTypeFont::Rasterise(unsigned int startCodepoint, unsigned int endCodepoint) Zeile 193
  5. meinHack.dll!OSHGui::Drawing::Font::GetGlyphData(unsigned int codepoint) Zeile 65
  6. meinHack.dll!OSHGui::Drawing::Font::DrawText(OSHGui::Drawing::GeometryBuffer & buffer, const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & text, const OSHGui::Drawing::Point<float> & position, const OSHGui::Drawing::Rectangle<float> * clip, const OSHGui::Drawing::ColorRectangle & colors, const float spaceExtra, const float scaleX, const float scaleY) Zeile 160
  7. meinHack.dll!OSHGui::Drawing::Graphics::DrawString(const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & text, const std::shared_ptr<OSHGui::Drawing::Font> & font, const OSHGui::Drawing::Color & color, const OSHGui::Drawing::Point<float> & origin) Zeile 268
  8. meinHack.dll!DirectXHooks::EndScene(IDirect3DDevice9 * pDevice) Zeile 108

Diese Zeile (264) hier failed wohl und schmeißt die Exception: (Direct3d9Texture.cpp)
TEXT Code:
  1. if (FAILED(D3DXCreateTexture(owner.GetDevice(), static_cast<UINT>(textureSize.Width), static_cast<UINT>(textureSize.Height), 1, 0, format, D3DPOOL_MANAGED, &texture)))
  2. {
  3. throw Misc::Exception();
  4. }



Wie kann ich das beheben?
Die Initialisierungsroutinen sind genau wie im Sample-Projekt (wie damals eben auch schon).

Edit: Gerade noch mal eine Custom-Form erstellt. Wenn ich einen Button adde (ohne Text), geht alles. Sobald ich den Text für den Button setze, crasht es.
Bugtracker

So 24. Jan 2016, 16:27

von KN4CK3R Go to last post
5 1151
icon

Go to first new post String-Drawing funktioniert nicht Erstellt am: So 24. Jan 2016, 01:00

Jules19

preview Vorschau

Go To Post

Hi,

habe ich natürlich nicht probiert. Aber ja, Sample geht. Und ja, ist CS:S... (Threaded Rendering Mode, Windowed Mode)
Ist ein Fix in Aussicht oder ist das was schlimmeres™? Kann ich irgendwie beim debuggen helfen?

Damals (26.07.2014) ging es noch (mit dem neuen Renderer war das auch schon).

Danke!
Bugtracker

So 24. Jan 2016, 16:27

von KN4CK3R Go to last post
5 1151
icon

Go to first new post [Help] Renderer unabhängig von Fenstern verwenden Erstellt am: Fr 25. Jul 2014, 23:35

Jules19

preview Vorschau

Go To Post

...so einfach :-D Werde ich gleich umbauen...
Die Crashprobleme sind weg. Es lag - wie du richtig geraten hast - am Hook.

Ich werde nun noch rumsuchen, wie ich den Windows-Cursor im Hauptmenü ausblende. ShowCursor() reicht nicht aus - offensichtlich. Wenn das fertig ist, poste ich mal meine Lösung, mit der man das Menü dann problemlos Ingame und im Menü verwenden kann.
Bugtracker

Sa 26. Jul 2014, 16:18

von Jules19 Go to last post
8 402
icon

Go to first new post [Help] Renderer unabhängig von Fenstern verwenden Erstellt am: Fr 25. Jul 2014, 23:35

Jules19

preview Vorschau

Go To Post

Danke, der Fehler mit dem Input ist behoben. Ich nutze nun die Threaded-Version. Wichtig war die PopulateMessages() Funktion. Die hatte ich vorher nicht drin. Problem war auch folgendes: der Thread, der DirectX verwendet, ist nicht unbedingt der Message-Thread. Lösung (kann vermutlich besser gemacht werden): alle Threads auf WM_GETMESSAGE hooken und sobald ein Hook aufgerufen wird, alle Hooks entfernen außer den, woher der Call kam. So habe ich jetzt garantiert, dass ich immer den richtigen Inputthread erwische. Nun funktionieren auch die Hotkeys. Sorry, dass ich dachte, dass es an der Lib liegt ;-)

Ich probiere nun weiter rum, wie sich das mit den Crashes verhält. Das debuggen gestaltet sich da schwierig. Fest steht, dass es nur crasht, solange ich OSHGui initialisiere. Kann aber auch sein, dass dadurch andere Seiteneffekte ausgelöst werden, die mit der Lib an sich nichts zu tun haben...
Bugtracker

Sa 26. Jul 2014, 16:18

von Jules19 Go to last post
8 402
Downloads
Es wurden keine entsprechenden Downloads gefunden.