problem entdeckt
-
hi,
hat jemand eine idee, eine schnellere funktion die aehnlich wie drawtext funktioniert? diese funktion ist sehr langsam, leider.danke.
msp
-
sicher das nicht mangelhafte umsetzung deine Funktion langsam macht.
-
hi,
da bin ich sicher, denn wenn ich die zeile mit dem drawtest rausnehme, also die ausgabe des textes, ist alles viel schneller. es muss an der funktion liegen. an dem parameter length liegt es auch nicht, ich habe zu testzwecken mal eine zahl eingetragen, das problem blieb das gleiche.hat jemand schon mal mit bmp's schrift erzeugt???
gruss
msp
-
hi,
ich nochmal. habe hier mal den code meiner funktion:m_backbuffer->GetDC(&hdc);
SetBkMode(hdc, TRANSPARENT);
SetTextColor(hdc, RGB(0, 0, 255));
SetRect(&rectbitmap, m_x+m_xsize-15, m_y, m_x+m_xsize, m_y+18);
DrawText( hdc, "[x]", 3, &rectbitmap, DT_RIGHT );
m_backbuffer->ReleaseDC(hdc);wenn ich die zeile mit dem drawtest rausnehme wird der bildaufbau ca doppelt so schnell (von ca 31 fps auf 60 fps)
msp
-
es kann sein dass dein vsync eingeschaltet ist und du beim zeichnen mit text leicht langsammer als 60hz bist und wegen dem vsync also nur jedes zweite frame zeichnen kannst, somit ca 30fps dabei rauskommen.
für eine wirkliche messung müßtest du das programm im fullscreen ohne vsync laufen lassen. am ende könnte es 55fps zu 60fps sein
textausgabe mit bitmaps ist nicht anders als wenn du z.B. 64 verschiedene fenster hättest die du indizieren kannst (den char-code) und dasjenige entsprechend zeichnest.
hoffe das ist nicht zu verkompliziert ausgedrückt
//mal auf c++ versuchen for(int a=0; a<len(text);a++) DirectDraw->DrawBitmap(posx+FontWidth*a,posy,FontBitmaps[text[a]]);
rapso->greets();
-
hi,
kann es sein das man m_backbuffer->GetDC(&hdc); lieber nur einmal aufrufen sollte?
momentan hat jedes fenster einen eigenen hdc. kann es wirklich daran liegen?msp
-
IIRC ist doch Textausgabe per GDI immer ziemlich langsam, oder gilt das nicht mehr?
-
Absolut korrekt ... das GDI ist für keine Art von Ausgaben geeignet, wenn Performance eine Rolle spielt.
-> Eigenes Textsystem implementieren und fertich
-
Hallo.
Hast Du schon mal sowas gemacht?
Ich weiß nicht, wie ich da ran gehen müßte.
Besonderst würde es mich für Windows CE interessieren? Da habe ich nämlich enorme Zeitverluste.Cu
Oli
-
hi oli,
ich hab zwar sowas noch nicht gemacht, bin aber bei. sicherlich gibs elegantere methoden aber funktionieren tut schon etwas (Fenster verschieben und in den vodergrund holen). Hatte auch noch nicht viel zeit. leidermsp