| Description | uses | Classes, Interfaces, Objects and Records | Functions and Procedures | Types | Constants | Variables |
Idea jest zapisanie tutaj funkcji ktore w jakis sposob beda czekaly az user cos przycisnie / poda z klawiatury ale w przeciwienstwie do modulu GLWinMessages tutejszy modul nie przygotowuje zadnego interfejsu do tego - uzycie procedur z tego modulu bedzie wymagalo od ciebie przygotowania najpierw odpowiedniego obrazka (w buforze kolorow OpenGLa albo w strukturze TImage).
Komentarze do parametrow "ReadBuffer, FlushGLWindow" : Na poczatku funkcja robi save screen z ReadBuffer. Jesli FlushGLWindow to robi najpierw glwin.FlushRedisplay (generalnie, powinienes robic FlushGLWindow wtedy i tylko wtedy gdy ReadBuffer = GL_FRONT). Komentarze do parametrow "ImageFileName: string / Image: TImage" : Podany ImageRec musi miec Kind in ImageGLFormats. Alpha obrazka bedzie ignorowane.
function Input(glwin: TGLWindow; ReadBuffer: TGLenum; FlushGLWindow: boolean; Font: TGLBitmapFont_Abstract; ScreenX0, ScreenY0, AnswerX0, AnswerY0: Integer; AnswerDefault: string = ''; MinLength: Integer = 0; MaxLength: Integer = 0; const AnswerAllowedChars: TSetOfChars = AllChars ): string; |
procedure InputAnyKey(glwin: TGLWindow; const ImgFileName: string; ResizeX, ResizeY, RasterX, RasterY: Integer); overload; |
procedure InputAnyKey(glwin: TGLWindow; const Img: TImage; RasterX, RasterY: Integer); overload; |
procedure InputAnyKey(glwin: TGLWindow; ReadBuffer: TGLenum; FlushGLWindow: boolean; RasterX, RasterY: Integer); overload; |
function Input(glwin: TGLWindow; ReadBuffer: TGLenum; FlushGLWindow: boolean; Font: TGLBitmapFont_Abstract; ScreenX0, ScreenY0, AnswerX0, AnswerY0: Integer; AnswerDefault: string = ''; MinLength: Integer = 0; MaxLength: Integer = 0; const AnswerAllowedChars: TSetOfChars = AllChars ): string; |
|
Dziala w petli (glwm.ProcessMessage) i wyswietla zlapany obrazek (musisz podac ScreenX0, Y0 = taka pozycja rastera ze jest ona lewym dolnym rogiem ekranu) a na nim - wczytywany string (na pozycji glRasterPos2i(AnswerX0, AnswerY0)). Znaczenie AnswerDefault, MinLength, MaxLength i AnswerAllowedChars jest jasne, takie samo jak w GLWinMessages. Podobnie jak tam, dzialaja one dobrze pod warunkiem ze poczatkowe Answer nie zawiera znakow spoza AnswerAllowedChars. |
procedure InputAnyKey(glwin: TGLWindow; const ImgFileName: string; ResizeX, ResizeY, RasterX, RasterY: Integer); overload; |
|
Czeka na nacisniecie dowolnego klawisza aby wyjsc, obrazek wyswietlany na glRasterPos2i RasterX, Y Szzegoly: - jezeli obrazek jest mniejszy niz glwin.Width/Height to robi glClear (GL_COLOR_BUFFER_BIT) aby wyczyscic kazdorazowo reszte okienka. Wiec aktualny kolor clear OpenGLa ma wtedy znaczenie. - realizuje wewnatrz petle GLWindow glwm.ProcessMessage. W czasie wyswietlania obrazka user nie moze wyjsc z programu, closequery jest wylaczone itp. Jedyna co user moze zrobic to nacisnac dowolny klawisz. InputAnyKey(..ReadBuffer, FlushGLWindow...) pokazuje obrazek ktory aktualnie jest narysowany w danym buforze. W ten sposob ta funkcja dziala jako "press any key" - po prostu nic nie rysuje nowego na ekranie, czeka tylko az przycisniesz klawisz. Podane tu RasterX, RasterY musi w tym przypadku oznaczac ScreenX0, Y0 czyli lewy dolny rog okienka, no chyba ze chcesz wyswietlac aktualny obraz jakos przesuniety. |
procedure InputAnyKey(glwin: TGLWindow; const Img: TImage; RasterX, RasterY: Integer); overload; |
procedure InputAnyKey(glwin: TGLWindow; ReadBuffer: TGLenum; FlushGLWindow: boolean; RasterX, RasterY: Integer); overload; |