[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