Avatar billede fracklen Nybegynder
23. april 2002 - 21:10 Der er 20 kommentarer og
1 løsning

Blink / Flimmer

Hey!

Har brygget et lille prog sammen der "aflæser" hvad der bliver skrevet til en i mIRC.

Bagefter skal det få et vindue til at poppe op (StayOnTop) i det ene hjørne fx når man spiller cs...

Det grundlæggende er klaret, mit problem er at mit vindue bliver opdateret sammen med OpenGL-vinduet, og sender fps ned på 12-14 :(
Vinduets text bliver helt uæselig...

Kan se at WinAmp3 kan lave det nummer uden nogen større probs... Hvad kan jeg gøre?

Går ud fra at Winamp repainter sig selv med en selvstændig thread, men det er jeg ikke haj til...
Ku oz være man kunne lade den nægte at repainte på en eller anden måde?

Har prøvet at fange WM_PAINT, og kun lade den repainte 2 gange hvert sec, men det ændrer ikke på noget.

Spørgsmålet går altså på at få en form (eller noget andet) til at ligge stabilt ovenpå et OpenGL(Fullscreen) "billede". Helst uden at sænke fps.
Det ligger der kun et par secs.

(Bruger Delphi6 og kører CS med OpenGL)
Avatar billede ziron Nybegynder
23. april 2002 - 21:19 #1
har du prøvet at sætte, din form til DoubleBuffered. jeg har ingen idé om det har noget betydning, tror det ikke. ellers ved jeg sku ikke hvad jeg skal sige... opengl, ned tak :)

/ZIRON
Avatar billede fracklen Nybegynder
23. april 2002 - 22:32 #2
jeps... oxo min første tanke
Avatar billede zerohero Nybegynder
23. april 2002 - 22:34 #3
bruger du noget OpenGL kode i dit eget program eller er det kun Windows GDI'en du benytter?
Avatar billede zerohero Nybegynder
23. april 2002 - 22:36 #4
Hvis du bruger OpenGL kode i dit eget program, så prøv at slå CS over til Directx for at se om der sker ændringer?
Avatar billede zerohero Nybegynder
23. april 2002 - 22:37 #5
Forresten ved du, hvad din FPS normalt ligger på når du spiller CS?
Avatar billede zerohero Nybegynder
23. april 2002 - 22:43 #6
Jeg kan engang huske at jeg lavede en MediaPlayer, hvor på der skete en masse fancy ting i mit display, det fik min FPS til at dykke totalt selvom jeg kun benyttede Windows GDI'en som grafik kilde. Hvis du prøvede at lave dit program med OpenGL koder (altså alt det grafiske - selv tekst) så tror jeg at det kan løse problemet... Hvis du vil have hjælp omkring OpenGL koder, står jeg gerne tilrådighed...
Avatar billede fracklen Nybegynder
24. april 2002 - 00:35 #7
jeg kører bare windows gdi'en...
normalt ligger min fps på  40-60...
Vil meget gerne lave det i OpenGL koder... kender bare ikke så meget til det...
Avatar billede zerohero Nybegynder
24. april 2002 - 00:56 #8
Prøv at sende mig en skærmbillede (i et *.jpg format tak!!!) af din applikation. Så vil jeg hurtig lave et lille eksempel til dig med OpenGL, som du kan afprøve - for at se om det kan gøres på den måde. Ellers kan du besøge min hjemme side www.opengl-delphi.dk og læse lidt omkring brugen af OpenGL sammen med Delphi... min mail info@opengl-delphi.dk

ZeroHero
Avatar billede fracklen Nybegynder
24. april 2002 - 01:43 #9
vil sourcecode ikke være lettere?
Avatar billede lanstorp Nybegynder
24. april 2002 - 08:55 #10
Hvad er en mIRC ?
Avatar billede zerohero Nybegynder
24. april 2002 - 09:41 #11
Jo, men du bruger delphi6, og dem kan jeg ikke åbne med min delphi4...
Avatar billede fracklen Nybegynder
24. april 2002 - 15:47 #12
rigtigt...
Har prøvet at følge dit eksempel på din hp...
Når cs begynder at bruge grafik, går compen kold med sort skærm... :(
Avatar billede fracklen Nybegynder
24. april 2002 - 15:57 #13
har lige prøvet at køre det gamle, og så med cs i directX...
Det virker fint bortset fra at fps kommer fra 20 ned til 6...

(Normalt vil jeg helst undgå at benytte directX da jeg støtter opensource)
Og da de fleste af mine venne som jeg laver programmet til kun kører OpenGL (nVidia er bare bedst til OpenGL) ville det helt klart være bedst om det kunne bringes til at fungere i det.
Avatar billede fracklen Nybegynder
25. april 2002 - 15:53 #14
Hey... Zero...
En ting er at få den til at køre mens cs kører...
Jeg er i øjeblikket på jagt efter noget der kan få den til at skrive text ud i min frustum...?
Kan du hjælpe?
Avatar billede zerohero Nybegynder
26. april 2002 - 17:21 #15
Ja, her er koden der kan skrive tekst i OpenGL:

procedure Tform1.DoText;
var
  tnrFont: HFont;
  tnrBase : integer;
begin
  with nc do
  begin
    glpixelstorei(gl_unpack_alignment,1);
    tnrFont := createfont(16,0,0,0,fw_normal,0,0,0,ansi_charset,
    out_tt_precis,clip_default_precis,draft_quality,default_pitch,
    'Courier New');
    selectobject(dc,tnrFont);
    tnrBase := glgenlists(94);
    wglusefontbitmaps(dc,32,94,tnrbase);
    gllistbase(tnrBase-32);
  end;
end;

skriv følgende kald i din FormCreate procedure:

DoText;

og skriv følgende kald i din FormPaint procedure...


glRasterPos3f(-2.4,0,-5); //sætter position af din tekst

s := 'Hej med dig...'; //s er en string
glCallLists(Length(s),gl_Unsigned_Byte,Pointer(s)); //her pliver selve teksten skrevet...

ZeroHero
Avatar billede fracklen Nybegynder
28. april 2002 - 20:35 #16
sry... men det virker ikke
Avatar billede zerohero Nybegynder
28. april 2002 - 21:58 #17
Jeg kan godt sende dig et projekt, der virker... :))
Avatar billede fracklen Nybegynder
29. april 2002 - 19:30 #18
gerne... går ud fra du har min mail...
Har du tænkt lidt over den med at få det til at virke mens man spiller cs?
Avatar billede fracklen Nybegynder
30. april 2002 - 21:41 #19
ja... dit prog virker, men når jeg kører cs, tager den bare min fps ned...
Den lægger sig ikke ovenpå.

Tænkte på om noget andet er muligt...
Kan man "gøre krav" på en del af cs's vindue?
Man giver på et tidspunkt ogl en hWnd til ens eget vindue...
Hvis man nu tager en hWnd til cs' vindue?
Ved godt det lyder urealistisk... men igen: jeg kender ikke så meget til det...
Avatar billede zerohero Nybegynder
30. april 2002 - 23:20 #20
Jeg har prøvet lidt forskelligt, men umiddelbart virker det som om, at CS ihærdigt prøver at gøre krav på, at få top-positionen af Windows Z-order og forhindre dermed andre applikationer i at kunne ses på skærmen mens CS køre. Jeg tror at CS gør dette af den ene grund, at hvis ikke CS's applikation hele tiden er aktiv og ligger øverst i z-orderen, vil en del af kommunikationen mellem spiller og CS muligvis svigte!!! Så hvis man enten kunne snyde CS til at tro at den hele tiden ligger øverst ville det måske være en løsning...
Avatar billede fracklen Nybegynder
13. maj 2002 - 00:19 #21
Jeg fandt løsningen på problemet...

Grunden til at mit prog ikke ville opdatere ofte nok, var delphis lidt sløve kode...
skrev det om til c++ og nu virker det :)
Synes alligevel du skulle have dine point som tak for hjælpen.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester