Unit GLWinInputs

DescriptionusesClasses, Interfaces, Objects and RecordsFunctions and ProceduresTypesConstantsVariables

Description

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.

uses

Overview

Functions and Procedures

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;

Description

Functions and Procedures

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;
 

Generated by PasDoc 0.10.0 on 2008-02-25 00:00:31