.upptst: GLDrawTest

git-svn-id: svn://ultimatepp.org/upp/trunk@6353 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
cxl 2013-09-16 08:31:34 +00:00
parent a452f3e8cf
commit 3db7b0ca8b
4 changed files with 169 additions and 0 deletions

View file

@ -0,0 +1,12 @@
uses
CtrlLib,
GLCtrl,
GLDraw;
file
main.cpp,
test.qtf;
mainconfig
"" = "GUI SSE2";

6
upptst/GLDrawTest/init Normal file
View file

@ -0,0 +1,6 @@
#ifndef _GLDrawTest_icpp_init_stub
#define _GLDrawTest_icpp_init_stub
#include "CtrlLib/init"
#include "GLCtrl/init"
#include "GLDraw/init"
#endif

View file

@ -0,0 +1,83 @@
#include <CtrlLib/CtrlLib.h>
#include <GLCtrl/GLCtrl.h>
#include <GLDraw/GLDraw.h>
using namespace Upp;
struct OpenGLExample : GLCtrl {
Point point;
virtual void GLPaint() {
DLOG("GLPaint");
Size sz = GetSize();
GLDraw w;
Rect r = Rect(GetSize()).Deflated(20, 20);
w.InitGL(GetSize());
w.DrawRect(sz, LtRed());
DrawFatFrame(w, r, LtBlue(), 2);
DrawFatFrame(w, r.Deflated(5), LtBlue(), 2);
w.DrawRect(100, 100, 2, 2, Blue());
w.DrawImage(200, 100, CtrlImg::exclamation());
w.DrawImage(300, 100, CtrlImg::reporticon());
w.DrawImage(350, 100, CtrlImg::reporticon(), Blue());
w.DrawImage(400, 100, CtrlImg::swap_color_cursor());
for(int i = 0; i < 16; i++) {
w.DrawImage(50 + 20 * i, 180, CtrlImg::checkers());
w.DrawImage(50 + 20 * i, 200, CtrlImg::checkers(), Rect(0, 0, i, 16));
w.DrawImage(50 + 20 * i, 220, CtrlImg::checkers(), Rect(0, 0, 16, i));
w.DrawImage(50 + 20 * i, 240, CtrlImg::checkers(), Rect(0, 0, i, i));
w.DrawImage(50 + 20 * i, 260, CtrlImg::checkers(), RectC(i, i, 4, 3));
}
w.DrawRect(50, 50, 20, 20, InvertColor());
w.DrawRect(55, 55, 8, 8, InvertColor());
// w.DrawRect(0, 0, sz.cx, sz.cy, SWhite);
w.DrawRect(10, 10, 30, 30, SRed);
w.DrawLine(45, 45, 80, 120, 4, Blue);
w.DrawLine(80, 90, 400, 0, PEN_DASHDOT);
w.DrawEllipse(200, 200, 50, 100, Green);
w.DrawImage(200, 10, CtrlImg::HandCursor());
const char *text = "This text is centered";
Size tsz = GetTextSize(text, Arial(25).Bold());
w.DrawText((sz.cx - tsz.cx) / 2, (sz.cy - tsz.cy) / 2, text, Arial(27).Bold(), SBlue);
w.Clipoff(200, 50, 95, 100);
w.DrawText(0, 80, "CLIPPED", Roman(25));
w.End();
RichText txt = ParseQTF(LoadFile(GetDataFile("test.qtf")));
DDUMP(txt.GetLength());
if(1) {
RTIMING("SystemDraw");
DLOG("---------------------------------------");
txt.Paint(Zoom(2, 10), w, 20, 20, 500);
}
GLDraw::ClearCache();
}
virtual void MouseMove(Point p, dword) {
point = p;
Refresh();
}
};
GUI_APP_MAIN
{
Ctrl::GlobalBackPaint();
TopWindow win;
OpenGLExample gl;
gl.SetFrame(InsetFrame());
win.Add(gl.HSizePos(10, 10).VSizePos(10, 10));
win.Sizeable().Zoomable();
win.Open();
win.Run();
}

View file

@ -0,0 +1,68 @@
[ $$0,0#00000000000000000000000000000000:Default]
[*C@3+75 $$1,1#36268203433472503231438721581057:code]
[*/+117 $$2,0#07143242482611002448121871408047:title]
[@(128.0.255)2 $$3,0#65874547464505293575048467215454:QTF Chr]
[{_}%EN-US
[s0; [*4 QTF]&]
[s0;= [*8 QTF]&]
[s0; &]
[s0; QTF is the native format of Ultimate`+`+ rich texts (formatted
texts).&]
[s0; &]
[s0; It is byte oriented format. Bytes with values 2`-31 are ignored.
Other are interpreted as characters or formatting commands.&]
[s0; &]
[s0; Letters ([@4 a]`-[@4 zA]`-[@4 Z]), numbers ([@4 0]`-[@4 9]), space (32)
and characters&]
[s0; &]
[s0; [*@4 . , ; ! ? % ( ) / < > #]&]
[s0; &]
[s0; and bytes [* greater] than 127 are guaranteed to be never used as
command characters (not even in future versions of QTF). Other
characters should be prefixed with escape character `` (reverse
apostrophe). Group of characters can be escaped using byte 1.
Example:&]
[s0; &]
[s1; `\"`\1a`[x`]`\1`[`* bold`]`\"&]
[s0; Normal [* Bold] [/ Italic] [*/ Bold Italic] [_ Underline] [- Stroked]&]
[Rs0; Normal [* Bold] [/ Italic] [*/ Bold Italic] [_ Underline] [- Stroked]&]
[Cs0; Normal [* Bold] [/ Italic] [*/ Bold Italic] [_ Underline] [- Stroked]&]
[s0; Byte 0 represents the end of input sequence.&]
[s0; &]
[s0; Dimension units of QTF are dots `- one dot is defined as 1/600
of inch.&]
[s0; &]
[s0; Colors are described as either number [@(128.0.255) 0]`-[@(128.0.255) 9],
with meaning&]
[s0; &]
[ {{1000:1000:1000:1000:1000:1000:1000:1000:1000:1000<96;>96;f4; [s0;%- [* 0]]
:: [s0;%- [* 1]]
:: [s0;%- [* 2]]
:: [s0;%- [* 3]]
:: [s0;%- [* 4]]
:: [s0;%- [* 5]]
:: [s0;%- [* 6]]
:: [s0;%- [* 7]]
:: [s0;%- [* 8]]
:: [s0;%- [* 9]]
::l/0r/0t/0b/0@0 [s0; ]
::@1 [s0; ]
::@2 [s0; ]
::@3 [s0; ]
::@4 [s0; ]
::@5 [s0; ]
::@6 [s0; ]
::@7 [s0; ]
::@8 [s0; ]
::@9 [s0; ]
::l/25r/25t/15b/15@2 [s0;%- [1 Black]]
:: [s0; [1 LtGray]]
:: [s0; [1 White]]
:: [s0;%- [1 Red]]
:: [s0;%- [1 Green]]
:: [s0;%- [1 Blue]]
:: [s0;%- [1 LtRed]]
:: [s0;%- [1 WhiteGray]]
:: [s0;%- [1 LtCyan]]
:: [s0;%- [1 Yellow]]}}&]
[s0; &]