summaryrefslogtreecommitdiff
path: root/test/simple
diff options
context:
space:
mode:
Diffstat (limited to 'test/simple')
-rw-r--r--test/simple/config.mak13
-rw-r--r--test/simple/iupmain.c51
-rw-r--r--test/simple/simple.c23
-rw-r--r--test/simple/simple.h1
-rw-r--r--test/simple/simple.led1
-rw-r--r--test/simple/simple_led.c1
6 files changed, 89 insertions, 1 deletions
diff --git a/test/simple/config.mak b/test/simple/config.mak
index 5b84629..6baa00a 100644
--- a/test/simple/config.mak
+++ b/test/simple/config.mak
@@ -39,11 +39,19 @@ USE_STATIC = Yes
#USE_IM = Yes
+USE_OPENGL = Yes
+ifdef USE_OPENGL
+ DEFINES += USE_OPENGL
+endif
+
ifneq ($(findstring Win, $(TEC_SYSNAME)), )
LIBS = cdpdf pdflib
ifndef GDK_CAIRO
LIBS += cdcontextplus gdiplus
endif
+ ifdef USE_OPENGL
+ LIBS += cdgl ftgl
+ endif
else
ifdef DBG_DIR
CDLIB = $(CD)/lib/$(TEC_UNAME)d
@@ -55,6 +63,9 @@ else
ifndef GDK_CAIRO
SLIB += $(CDLIB)/libcdcontextplus.a
LIBS = Xrender Xft
- else
+ endif
+ ifdef USE_OPENGL
+ SLIB += $(CDLIB)/libcdgl.a $(CDLIB)/libftgl.a
+ #LIBS = ftgl
endif
endif
diff --git a/test/simple/iupmain.c b/test/simple/iupmain.c
index daf058a..f417925 100644
--- a/test/simple/iupmain.c
+++ b/test/simple/iupmain.c
@@ -1,9 +1,19 @@
#include <stdlib.h>
#include <iup.h>
+#include <iupgl.h>
#include <cd.h>
#include "simple.h"
+#ifdef USE_OPENGL
+#ifdef WIN32
+#include <windows.h>
+#endif
+
+#include <GL/gl.h>
+#include <GL/glu.h>
+#endif
+
int cmdExit(void)
{
return IUP_CLOSE;
@@ -11,6 +21,14 @@ int cmdExit(void)
void simple_loadled (void);
+/* USE_OPENGL - add to linker:
+iupgl
+opengl32
+glu32
+cdgl
+ftgl
+*/
+
int main(int argc, char** argv)
{
IupOpen(&argc, &argv);
@@ -18,8 +36,21 @@ int main(int argc, char** argv)
#ifdef USE_CONTEXTPLUS
cdInitContextPlus();
#endif
+#ifdef USE_OPENGL
+ IupGLCanvasOpen();
+#endif
simple_loadled();
+#ifdef USE_OPENGL
+ {
+ Ihandle* dialog = IupGetHandle("SimpleDialog");
+ Ihandle* canvas = IupGetHandle("SimpleCanvas");
+ IupDestroy(canvas);
+ canvas = IupGLCanvas("SimpleRepaint");
+ IupSetHandle("SimpleCanvas", canvas);
+ IupAppend(dialog, canvas);
+ }
+#endif
IupSetAttribute(IupGetHandle("SimpleDialog"), "PLACEMENT", "MAXIMIZED");
IupShow(IupGetHandle("SimpleDialog"));
@@ -57,6 +88,10 @@ int main(int argc, char** argv)
IupSetFunction("SimpleDrawImageRGB", (Icallback) SimpleDrawImageRGB);
IupSetFunction("SimpleDrawSimulate", (Icallback) SimpleDrawSimulate);
+#ifdef USE_OPENGL
+ IupSetFunction("SimpleDrawGL", (Icallback) SimpleDrawGL);
+#endif
+
IupSetFunction("SimpleNotXor", (Icallback) SimpleNotXor);
IupSetFunction("SimpleXor", (Icallback) SimpleXor);
IupSetFunction("SimpleReplace", (Icallback) SimpleReplace);
@@ -76,6 +111,22 @@ int main(int argc, char** argv)
SimpleDrawWindow();
+#ifdef USE_OPENGL
+ {
+ Ihandle* canvas = IupGetHandle("SimpleCanvas");
+ int w = IupGetInt(canvas, "RASTERSIZE");
+ int h = IupGetInt2(canvas, "RASTERSIZE");
+ IupGLMakeCurrent(canvas);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluOrtho2D(0, w, 0, h);
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ }
+#endif
+
IupMainLoop();
SimpleKillCanvas();
diff --git a/test/simple/simple.c b/test/simple/simple.c
index 6f7a4cb..a15a242 100644
--- a/test/simple/simple.c
+++ b/test/simple/simple.c
@@ -29,6 +29,7 @@
#include "cddebug.h"
#include "wd.h"
#include "cdgdiplus.h"
+#include "cdgl.h"
#include "simple.h"
@@ -473,6 +474,28 @@ int SimpleDrawImageRGB(void)
return 0;
}
+#ifdef USE_OPENGL
+int SimpleDrawGL(void)
+{
+ char StrData[100];
+ int w, h;
+ double w_mm, h_mm;
+ cdActivate(curCanvas);
+ cdGetCanvasSize(&w, &h, &w_mm, &h_mm);
+
+ sprintf(StrData, "%dx%d %g", w, h, ((double)w/w_mm));
+
+ if (dbCanvas) cdKillCanvas(dbCanvas);
+
+ dbCanvas = cdCreateCanvas(CD_GL, StrData);
+
+ curCanvas = dbCanvas;
+ SimpleDrawRepaint();
+
+ return 0;
+}
+#endif
+
int SimpleDrawSimulate(void)
{
cdActivate(curCanvas);
diff --git a/test/simple/simple.h b/test/simple/simple.h
index 933b714..b32fc59 100644
--- a/test/simple/simple.h
+++ b/test/simple/simple.h
@@ -35,6 +35,7 @@ int SimpleDrawClipboardEMF(void);
int SimpleDrawImage(void);
int SimpleDrawImageRGB(void);
int SimpleDrawSimulate(void);
+int SimpleDrawGL(void);
int SimpleNotXor(void);
int SimpleXor(void);
diff --git a/test/simple/simple.led b/test/simple/simple.led
index 63f3dc2..b1e67df 100644
--- a/test/simple/simple.led
+++ b/test/simple/simple.led
@@ -71,6 +71,7 @@ mnSurface = MENU
ITEM("Window", SimpleDrawWindow),
ITEM("Server Image", SimpleDrawImage),
ITEM("Image RGB", SimpleDrawImageRGB)
+ ITEM("OpenGL", SimpleDrawGL)
)
mnPrimitives = MENU
diff --git a/test/simple/simple_led.c b/test/simple/simple_led.c
index 626b849..9c5d786 100644
--- a/test/simple/simple_led.c
+++ b/test/simple/simple_led.c
@@ -92,6 +92,7 @@ void simple_loadled (void)
IupItem( "Window", "SimpleDrawWindow" ),
IupItem( "Server Image", "SimpleDrawImage" ),
IupItem( "Image RGB", "SimpleDrawImageRGB" ),
+ IupItem( "OpenGL", "SimpleDrawGL" ),
NULL), NULL );
named[8] = decl( "mnPrimitives", IupMenu(
IupItem( "All", "SimpleDrawAll" ),