[teklib-general] teklib: Windows display (development version) added
Timm S. Mueller
tmueller at neoscientists.org
Thu Jan 22 15:21:16 CET 2009
details: http://hg.teklib.org/teklib/rev/364ba3f60f35
changeset: 238:364ba3f60f35
user: Timm S. Mueller <tmueller at neoscientists.org>
date: Thu Jan 22 15:17:59 2009 +0100
description:
Windows display (development version) added
diffs (truncated from 1914 to 100 lines):
diff -r 9169b484a652 -r 364ba3f60f35 src/display_windows/build/tmkmakefile
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/display_windows/build/tmkmakefile Thu Jan 22 15:17:59 2009 +0100
@@ -0,0 +1,42 @@
+
+[include name="BUILD:config.tmk"/]
+
+[body name="paths"]
+ TEKLIB = $(PARENT)$(PARENT)
+ BINDIR = $(TEKLIB)bin/$(HOST)
+[/body]
+
+[body name="modtargets"]
+
+ [embed body="mods"]
+ display_windows
+ [/embed]
+
+ [embed body="modlink"]
+ display_windows
+ $(OBJDIR)/display_win_mod.mo \
+ $(OBJDIR)/display_win_api.mo \
+ $(OBJDIR)/display_win_font.mo
+ [/embed]
+ [embed body="moddep"]
+ $(OBJDIR)/display_win_mod.mo
+ display_win_mod.c
+ display_win_mod.h
+ [/embed]
+ [embed body="moddep"]
+ $(OBJDIR)/display_win_api.mo
+ display_win_api.c
+ display_win_mod.h
+ [/embed]
+ [embed body="moddep"]
+ $(OBJDIR)/display_win_font.mo
+ display_win_font.c
+ display_win_mod.h
+ [/embed]
+[/body]
+
+[include name="BUILD:builds.tmk"/]
+
+[render to="tmk_"]
+ makefile_modules
+[/render]
diff -r 9169b484a652 -r 364ba3f60f35 src/display_windows/display_win_api.c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/display_windows/display_win_api.c Thu Jan 22 15:17:59 2009 +0100
@@ -0,0 +1,740 @@
+
+/*
+** display_win_api.c - Windows display driver
+** Written by Timm S. Mueller <tmueller at schulze-mueller.de>
+** See copyright notice in teklib/COPYRIGHT
+*/
+
+#include "display_win_mod.h"
+
+#define RGB2COLORREF(rgb) \
+ ((((rgb) << 16) & 0xff0000) | ((rgb) & 0xff00) | (((rgb) >> 16) & 0xff))
+
+static void
+fb_closeall(WINDISPLAY *mod, WINWINDOW *win, TBOOL unref_font);
+
+/*****************************************************************************/
+
+static TTASKENTRY TBOOL
+fb_initwindow(TAPTR task)
+{
+ struct TExecBase *TExecBase = TGetExecBase(task);
+ struct TVFBRequest *req = TGetTaskData(task);
+ TTAGITEM *tags = req->tvr_Op.OpenWindow.Tags;
+ WINDISPLAY *mod = (WINDISPLAY *) req->tvr_Req.io_Device;
+ WINWINDOW *win;
+
+ req->tvr_Op.OpenWindow.Window = TNULL;
+
+ for (;;)
+ {
+ RECT wrect;
+
+ win = TAlloc0(mod->fbd_MemMgr, sizeof(WINWINDOW));
+ if (win == TNULL)
+ break;
+
+ TInitList(&win->penlist);
+
+ win->fbv_Width = (TUINT) TGetTag(tags, TVisual_Width, FB_DEF_WIDTH);
+ win->fbv_Height = (TUINT) TGetTag(tags, TVisual_Height, FB_DEF_HEIGHT);
+ win->fbv_Left = (TUINT) TGetTag(tags, TVisual_WinLeft, 0);
+ win->fbv_Top = (TUINT) TGetTag(tags, TVisual_WinTop, 0);
+ win->fbv_Title = (TSTRPTR) TGetTag(tags, TVisual_Title,
+ (TTAG) "TEKlib Visual");
+
+ wrect.left = win->fbv_Left;
+ wrect.top = win->fbv_Top;
+ wrect.right = win->fbv_Left + win->fbv_Width - 1;
+ wrect.bottom = win->fbv_Top + win->fbv_Height - 1;
+ AdjustWindowRectEx(&wrect, WS_OVERLAPPEDWINDOW, FALSE, 0);
More information about the teklib-general
mailing list