From 0626cb3527404582a18d5468d01b9d0f56362dec Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Sat, 1 Nov 2025 03:59:45 +0000 Subject: [PATCH] fix things git-svn-id: http://svn2.nishi.boats/svn/milsko/trunk@542 b9cfdab3-6d41-4d17-bbe4-086880011989 --- BorMakefile | 48 +++--- NTMakefile | 48 +++--- WatMakefile | 126 ++++++++------- examples/basic/color_picker.c | 2 + examples/color_picker.c | 220 --------------------------- include/Mw/LowLevelMath.h | 3 +- src/math/default.c | 8 +- src/math/math.c | 27 ++-- src/math/{math.h => math_internal.h} | 2 +- src/math/mmx.c | 10 +- src/math/mmx_guard.c | 1 + tools/genmk.pl | 1 + 12 files changed, 153 insertions(+), 343 deletions(-) delete mode 100644 examples/color_picker.c rename src/math/{math.h => math_internal.h} (95%) diff --git a/BorMakefile b/BorMakefile index bca4623..161e45c 100644 --- a/BorMakefile +++ b/BorMakefile @@ -7,65 +7,69 @@ LDFLAGS = -tWD .SUFFIXES: .obj .c all: src\Mw.dll clean: - del /f /q src\core.obj - del /f /q src\text.obj - del /f /q src\string.obj - del /f /q src\draw.obj del /f /q src\default.obj - del /f /q src\filechooser.obj del /f /q src\lowlevel.obj - del /f /q src\error.obj - del /f /q src\unicode.obj del /f /q src\color.obj del /f /q src\directory.obj + del /f /q src\text.obj + del /f /q src\error.obj + del /f /q src\unicode.obj del /f /q src\messagebox.obj + del /f /q src\string.obj + del /f /q src\filechooser.obj + del /f /q src\core.obj + del /f /q src\draw.obj del /f /q external\stb_ds.obj del /f /q external\stb_image.obj del /f /q external\stb_truetype.obj + del /f /q src\icon\error.obj del /f /q src\icon\info.obj + del /f /q src\icon\news.obj del /f /q src\icon\note.obj del /f /q src\icon\warning.obj - del /f /q src\icon\error.obj - del /f /q src\icon\news.obj - del /f /q src\icon\directory.obj del /f /q src\icon\file.obj + del /f /q src\icon\directory.obj del /f /q src\icon\back.obj del /f /q src\icon\forward.obj - del /f /q src\icon\up.obj del /f /q src\icon\computer.obj + del /f /q src\icon\up.obj del /f /q src\icon\search.obj del /f /q src\icon\down.obj del /f /q src\icon\left.obj del /f /q src\icon\right.obj - del /f /q src\cursor\default.obj del /f /q src\cursor\cross.obj + del /f /q src\cursor\default.obj del /f /q src\cursor\text.obj del /f /q src\cursor\hidden.obj del /f /q src\widget\button.obj del /f /q src\widget\frame.obj - del /f /q src\widget\opengl.obj del /f /q src\widget\window.obj - del /f /q src\widget\menu.obj del /f /q src\widget\entry.obj + del /f /q src\widget\label.obj + del /f /q src\widget\opengl.obj + del /f /q src\widget\radiobox.obj del /f /q src\widget\submenu.obj - del /f /q src\widget\viewport.obj + del /f /q src\widget\menu.obj del /f /q src\widget\image.obj + del /f /q src\widget\viewport.obj + del /f /q src\widget\listbox.obj del /f /q src\widget\scrollbar.obj del /f /q src\widget\checkbox.obj - del /f /q src\widget\label.obj - del /f /q src\widget\listbox.obj del /f /q src\widget\numberentry.obj del /f /q src\widget\progressbar.obj - del /f /q src\widget\radiobox.obj - del /f /q src\font\boldttf.obj - del /f /q src\font\ttf.obj del /f /q src\font\boldfont.obj + del /f /q src\font\boldttf.obj del /f /q src\font\font.obj + del /f /q src\font\ttf.obj + del /f /q src\math\mmx_guard.obj + del /f /q src\math\mmx.obj + del /f /q src\math\default.obj + del /f /q src\math\math.obj del /f /q src\backend\gdi.obj del /f /q src\Mw.dll -src\Mw.dll: src\core.obj src\text.obj src\string.obj src\draw.obj src\default.obj src\filechooser.obj src\lowlevel.obj src\error.obj src\unicode.obj src\color.obj src\directory.obj src\messagebox.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\icon\info.obj src\icon\note.obj src\icon\warning.obj src\icon\error.obj src\icon\news.obj src\icon\directory.obj src\icon\file.obj src\icon\back.obj src\icon\forward.obj src\icon\up.obj src\icon\computer.obj src\icon\search.obj src\icon\down.obj src\icon\left.obj src\icon\right.obj src\cursor\default.obj src\cursor\cross.obj src\cursor\text.obj src\cursor\hidden.obj src\widget\button.obj src\widget\frame.obj src\widget\opengl.obj src\widget\window.obj src\widget\menu.obj src\widget\entry.obj src\widget\submenu.obj src\widget\viewport.obj src\widget\image.obj src\widget\scrollbar.obj src\widget\checkbox.obj src\widget\label.obj src\widget\listbox.obj src\widget\numberentry.obj src\widget\progressbar.obj src\widget\radiobox.obj src\font\boldttf.obj src\font\ttf.obj src\font\boldfont.obj src\font\font.obj src\backend\gdi.obj - $(LD) $(LDFLAGS) -e$@ src\core.obj src\text.obj src\string.obj src\draw.obj src\default.obj src\filechooser.obj src\lowlevel.obj src\error.obj src\unicode.obj src\color.obj src\directory.obj src\messagebox.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\icon\info.obj src\icon\note.obj src\icon\warning.obj src\icon\error.obj src\icon\news.obj src\icon\directory.obj src\icon\file.obj src\icon\back.obj src\icon\forward.obj src\icon\up.obj src\icon\computer.obj src\icon\search.obj src\icon\down.obj src\icon\left.obj src\icon\right.obj src\cursor\default.obj src\cursor\cross.obj src\cursor\text.obj src\cursor\hidden.obj src\widget\button.obj src\widget\frame.obj src\widget\opengl.obj src\widget\window.obj src\widget\menu.obj src\widget\entry.obj src\widget\submenu.obj src\widget\viewport.obj src\widget\image.obj src\widget\scrollbar.obj src\widget\checkbox.obj src\widget\label.obj src\widget\listbox.obj src\widget\numberentry.obj src\widget\progressbar.obj src\widget\radiobox.obj src\font\boldttf.obj src\font\ttf.obj src\font\boldfont.obj src\font\font.obj src\backend\gdi.obj -lopengl32.lib -lgdi32.lib -luser32.lib +src\Mw.dll: src\default.obj src\lowlevel.obj src\color.obj src\directory.obj src\text.obj src\error.obj src\unicode.obj src\messagebox.obj src\string.obj src\filechooser.obj src\core.obj src\draw.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\icon\error.obj src\icon\info.obj src\icon\news.obj src\icon\note.obj src\icon\warning.obj src\icon\file.obj src\icon\directory.obj src\icon\back.obj src\icon\forward.obj src\icon\computer.obj src\icon\up.obj src\icon\search.obj src\icon\down.obj src\icon\left.obj src\icon\right.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\text.obj src\cursor\hidden.obj src\widget\button.obj src\widget\frame.obj src\widget\window.obj src\widget\entry.obj src\widget\label.obj src\widget\opengl.obj src\widget\radiobox.obj src\widget\submenu.obj src\widget\menu.obj src\widget\image.obj src\widget\viewport.obj src\widget\listbox.obj src\widget\scrollbar.obj src\widget\checkbox.obj src\widget\numberentry.obj src\widget\progressbar.obj src\font\boldfont.obj src\font\boldttf.obj src\font\font.obj src\font\ttf.obj src\math\mmx_guard.obj src\math\mmx.obj src\math\default.obj src\math\math.obj src\backend\gdi.obj + $(LD) $(LDFLAGS) -e$@ src\default.obj src\lowlevel.obj src\color.obj src\directory.obj src\text.obj src\error.obj src\unicode.obj src\messagebox.obj src\string.obj src\filechooser.obj src\core.obj src\draw.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\icon\error.obj src\icon\info.obj src\icon\news.obj src\icon\note.obj src\icon\warning.obj src\icon\file.obj src\icon\directory.obj src\icon\back.obj src\icon\forward.obj src\icon\computer.obj src\icon\up.obj src\icon\search.obj src\icon\down.obj src\icon\left.obj src\icon\right.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\text.obj src\cursor\hidden.obj src\widget\button.obj src\widget\frame.obj src\widget\window.obj src\widget\entry.obj src\widget\label.obj src\widget\opengl.obj src\widget\radiobox.obj src\widget\submenu.obj src\widget\menu.obj src\widget\image.obj src\widget\viewport.obj src\widget\listbox.obj src\widget\scrollbar.obj src\widget\checkbox.obj src\widget\numberentry.obj src\widget\progressbar.obj src\font\boldfont.obj src\font\boldttf.obj src\font\font.obj src\font\ttf.obj src\math\mmx_guard.obj src\math\mmx.obj src\math\default.obj src\math\math.obj src\backend\gdi.obj -lopengl32.lib -lgdi32.lib -luser32.lib implib src\Mw.lib src\Mw.dll .c.obj: diff --git a/NTMakefile b/NTMakefile index 4c0e171..7efa637 100644 --- a/NTMakefile +++ b/NTMakefile @@ -7,65 +7,69 @@ LDFLAGS = /DLL .SUFFIXES: .obj .c all: src\Mw.dll clean: - del /f /q src\core.obj - del /f /q src\text.obj - del /f /q src\string.obj - del /f /q src\draw.obj del /f /q src\default.obj - del /f /q src\filechooser.obj del /f /q src\lowlevel.obj - del /f /q src\error.obj - del /f /q src\unicode.obj del /f /q src\color.obj del /f /q src\directory.obj + del /f /q src\text.obj + del /f /q src\error.obj + del /f /q src\unicode.obj del /f /q src\messagebox.obj + del /f /q src\string.obj + del /f /q src\filechooser.obj + del /f /q src\core.obj + del /f /q src\draw.obj del /f /q external\stb_ds.obj del /f /q external\stb_image.obj del /f /q external\stb_truetype.obj + del /f /q src\icon\error.obj del /f /q src\icon\info.obj + del /f /q src\icon\news.obj del /f /q src\icon\note.obj del /f /q src\icon\warning.obj - del /f /q src\icon\error.obj - del /f /q src\icon\news.obj - del /f /q src\icon\directory.obj del /f /q src\icon\file.obj + del /f /q src\icon\directory.obj del /f /q src\icon\back.obj del /f /q src\icon\forward.obj - del /f /q src\icon\up.obj del /f /q src\icon\computer.obj + del /f /q src\icon\up.obj del /f /q src\icon\search.obj del /f /q src\icon\down.obj del /f /q src\icon\left.obj del /f /q src\icon\right.obj - del /f /q src\cursor\default.obj del /f /q src\cursor\cross.obj + del /f /q src\cursor\default.obj del /f /q src\cursor\text.obj del /f /q src\cursor\hidden.obj del /f /q src\widget\button.obj del /f /q src\widget\frame.obj - del /f /q src\widget\opengl.obj del /f /q src\widget\window.obj - del /f /q src\widget\menu.obj del /f /q src\widget\entry.obj + del /f /q src\widget\label.obj + del /f /q src\widget\opengl.obj + del /f /q src\widget\radiobox.obj del /f /q src\widget\submenu.obj - del /f /q src\widget\viewport.obj + del /f /q src\widget\menu.obj del /f /q src\widget\image.obj + del /f /q src\widget\viewport.obj + del /f /q src\widget\listbox.obj del /f /q src\widget\scrollbar.obj del /f /q src\widget\checkbox.obj - del /f /q src\widget\label.obj - del /f /q src\widget\listbox.obj del /f /q src\widget\numberentry.obj del /f /q src\widget\progressbar.obj - del /f /q src\widget\radiobox.obj - del /f /q src\font\boldttf.obj - del /f /q src\font\ttf.obj del /f /q src\font\boldfont.obj + del /f /q src\font\boldttf.obj del /f /q src\font\font.obj + del /f /q src\font\ttf.obj + del /f /q src\math\mmx_guard.obj + del /f /q src\math\mmx.obj + del /f /q src\math\default.obj + del /f /q src\math\math.obj del /f /q src\backend\gdi.obj del /f /q src\Mw.dll -src\Mw.dll: src\core.obj src\text.obj src\string.obj src\draw.obj src\default.obj src\filechooser.obj src\lowlevel.obj src\error.obj src\unicode.obj src\color.obj src\directory.obj src\messagebox.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\icon\info.obj src\icon\note.obj src\icon\warning.obj src\icon\error.obj src\icon\news.obj src\icon\directory.obj src\icon\file.obj src\icon\back.obj src\icon\forward.obj src\icon\up.obj src\icon\computer.obj src\icon\search.obj src\icon\down.obj src\icon\left.obj src\icon\right.obj src\cursor\default.obj src\cursor\cross.obj src\cursor\text.obj src\cursor\hidden.obj src\widget\button.obj src\widget\frame.obj src\widget\opengl.obj src\widget\window.obj src\widget\menu.obj src\widget\entry.obj src\widget\submenu.obj src\widget\viewport.obj src\widget\image.obj src\widget\scrollbar.obj src\widget\checkbox.obj src\widget\label.obj src\widget\listbox.obj src\widget\numberentry.obj src\widget\progressbar.obj src\widget\radiobox.obj src\font\boldttf.obj src\font\ttf.obj src\font\boldfont.obj src\font\font.obj src\backend\gdi.obj - $(LD) $(LDFLAGS) /OUT:$@ src\core.obj src\text.obj src\string.obj src\draw.obj src\default.obj src\filechooser.obj src\lowlevel.obj src\error.obj src\unicode.obj src\color.obj src\directory.obj src\messagebox.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\icon\info.obj src\icon\note.obj src\icon\warning.obj src\icon\error.obj src\icon\news.obj src\icon\directory.obj src\icon\file.obj src\icon\back.obj src\icon\forward.obj src\icon\up.obj src\icon\computer.obj src\icon\search.obj src\icon\down.obj src\icon\left.obj src\icon\right.obj src\cursor\default.obj src\cursor\cross.obj src\cursor\text.obj src\cursor\hidden.obj src\widget\button.obj src\widget\frame.obj src\widget\opengl.obj src\widget\window.obj src\widget\menu.obj src\widget\entry.obj src\widget\submenu.obj src\widget\viewport.obj src\widget\image.obj src\widget\scrollbar.obj src\widget\checkbox.obj src\widget\label.obj src\widget\listbox.obj src\widget\numberentry.obj src\widget\progressbar.obj src\widget\radiobox.obj src\font\boldttf.obj src\font\ttf.obj src\font\boldfont.obj src\font\font.obj src\backend\gdi.obj opengl32.lib gdi32.lib user32.lib +src\Mw.dll: src\default.obj src\lowlevel.obj src\color.obj src\directory.obj src\text.obj src\error.obj src\unicode.obj src\messagebox.obj src\string.obj src\filechooser.obj src\core.obj src\draw.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\icon\error.obj src\icon\info.obj src\icon\news.obj src\icon\note.obj src\icon\warning.obj src\icon\file.obj src\icon\directory.obj src\icon\back.obj src\icon\forward.obj src\icon\computer.obj src\icon\up.obj src\icon\search.obj src\icon\down.obj src\icon\left.obj src\icon\right.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\text.obj src\cursor\hidden.obj src\widget\button.obj src\widget\frame.obj src\widget\window.obj src\widget\entry.obj src\widget\label.obj src\widget\opengl.obj src\widget\radiobox.obj src\widget\submenu.obj src\widget\menu.obj src\widget\image.obj src\widget\viewport.obj src\widget\listbox.obj src\widget\scrollbar.obj src\widget\checkbox.obj src\widget\numberentry.obj src\widget\progressbar.obj src\font\boldfont.obj src\font\boldttf.obj src\font\font.obj src\font\ttf.obj src\math\mmx_guard.obj src\math\mmx.obj src\math\default.obj src\math\math.obj src\backend\gdi.obj + $(LD) $(LDFLAGS) /OUT:$@ src\default.obj src\lowlevel.obj src\color.obj src\directory.obj src\text.obj src\error.obj src\unicode.obj src\messagebox.obj src\string.obj src\filechooser.obj src\core.obj src\draw.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\icon\error.obj src\icon\info.obj src\icon\news.obj src\icon\note.obj src\icon\warning.obj src\icon\file.obj src\icon\directory.obj src\icon\back.obj src\icon\forward.obj src\icon\computer.obj src\icon\up.obj src\icon\search.obj src\icon\down.obj src\icon\left.obj src\icon\right.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\text.obj src\cursor\hidden.obj src\widget\button.obj src\widget\frame.obj src\widget\window.obj src\widget\entry.obj src\widget\label.obj src\widget\opengl.obj src\widget\radiobox.obj src\widget\submenu.obj src\widget\menu.obj src\widget\image.obj src\widget\viewport.obj src\widget\listbox.obj src\widget\scrollbar.obj src\widget\checkbox.obj src\widget\numberentry.obj src\widget\progressbar.obj src\font\boldfont.obj src\font\boldttf.obj src\font\font.obj src\font\ttf.obj src\math\mmx_guard.obj src\math\mmx.obj src\math\default.obj src\math\math.obj src\backend\gdi.obj opengl32.lib gdi32.lib user32.lib .c.obj: diff --git a/WatMakefile b/WatMakefile index 45272c4..d7479df 100644 --- a/WatMakefile +++ b/WatMakefile @@ -6,120 +6,124 @@ CFLAGS = -i=include -d_MILSKO -dUSE_GDI -dUSE_STB_TRUETYPE -dUSE_STB_IMAGE -dSTB LDFLAGS = system nt_dll all: src/Mw.dll clean: .SYMBOLIC - %erase src/core.obj - %erase src/text.obj - %erase src/string.obj - %erase src/draw.obj %erase src/default.obj - %erase src/filechooser.obj %erase src/lowlevel.obj - %erase src/error.obj - %erase src/unicode.obj %erase src/color.obj %erase src/directory.obj + %erase src/text.obj + %erase src/error.obj + %erase src/unicode.obj %erase src/messagebox.obj + %erase src/string.obj + %erase src/filechooser.obj + %erase src/core.obj + %erase src/draw.obj %erase external/stb_ds.obj %erase external/stb_image.obj %erase external/stb_truetype.obj + %erase src/icon/error.obj %erase src/icon/info.obj + %erase src/icon/news.obj %erase src/icon/note.obj %erase src/icon/warning.obj - %erase src/icon/error.obj - %erase src/icon/news.obj - %erase src/icon/directory.obj %erase src/icon/file.obj + %erase src/icon/directory.obj %erase src/icon/back.obj %erase src/icon/forward.obj - %erase src/icon/up.obj %erase src/icon/computer.obj + %erase src/icon/up.obj %erase src/icon/search.obj %erase src/icon/down.obj %erase src/icon/left.obj %erase src/icon/right.obj - %erase src/cursor/default.obj %erase src/cursor/cross.obj + %erase src/cursor/default.obj %erase src/cursor/text.obj %erase src/cursor/hidden.obj %erase src/widget/button.obj %erase src/widget/frame.obj - %erase src/widget/opengl.obj %erase src/widget/window.obj - %erase src/widget/menu.obj %erase src/widget/entry.obj + %erase src/widget/label.obj + %erase src/widget/opengl.obj + %erase src/widget/radiobox.obj %erase src/widget/submenu.obj - %erase src/widget/viewport.obj + %erase src/widget/menu.obj %erase src/widget/image.obj + %erase src/widget/viewport.obj + %erase src/widget/listbox.obj %erase src/widget/scrollbar.obj %erase src/widget/checkbox.obj - %erase src/widget/label.obj - %erase src/widget/listbox.obj %erase src/widget/numberentry.obj %erase src/widget/progressbar.obj - %erase src/widget/radiobox.obj - %erase src/font/boldttf.obj - %erase src/font/ttf.obj %erase src/font/boldfont.obj + %erase src/font/boldttf.obj %erase src/font/font.obj + %erase src/font/ttf.obj + %erase src/math/mmx_guard.obj + %erase src/math/mmx.obj + %erase src/math/default.obj + %erase src/math/math.obj %erase src/backend/gdi.obj %erase src/Mw.dll -src/Mw.dll: src/core.obj src/text.obj src/string.obj src/draw.obj src/default.obj src/filechooser.obj src/lowlevel.obj src/error.obj src/unicode.obj src/color.obj src/directory.obj src/messagebox.obj external/stb_ds.obj external/stb_image.obj external/stb_truetype.obj src/icon/info.obj src/icon/note.obj src/icon/warning.obj src/icon/error.obj src/icon/news.obj src/icon/directory.obj src/icon/file.obj src/icon/back.obj src/icon/forward.obj src/icon/up.obj src/icon/computer.obj src/icon/search.obj src/icon/down.obj src/icon/left.obj src/icon/right.obj src/cursor/default.obj src/cursor/cross.obj src/cursor/text.obj src/cursor/hidden.obj src/widget/button.obj src/widget/frame.obj src/widget/opengl.obj src/widget/window.obj src/widget/menu.obj src/widget/entry.obj src/widget/submenu.obj src/widget/viewport.obj src/widget/image.obj src/widget/scrollbar.obj src/widget/checkbox.obj src/widget/label.obj src/widget/listbox.obj src/widget/numberentry.obj src/widget/progressbar.obj src/widget/radiobox.obj src/font/boldttf.obj src/font/ttf.obj src/font/boldfont.obj src/font/font.obj src/backend/gdi.obj - $(LD) $(LDFLAGS) option implib=src/Mw.lib name $@ file src/core.obj file src/text.obj file src/string.obj file src/draw.obj file src/default.obj file src/filechooser.obj file src/lowlevel.obj file src/error.obj file src/unicode.obj file src/color.obj file src/directory.obj file src/messagebox.obj file external/stb_ds.obj file external/stb_image.obj file external/stb_truetype.obj file src/icon/info.obj file src/icon/note.obj file src/icon/warning.obj file src/icon/error.obj file src/icon/news.obj file src/icon/directory.obj file src/icon/file.obj file src/icon/back.obj file src/icon/forward.obj file src/icon/up.obj file src/icon/computer.obj file src/icon/search.obj file src/icon/down.obj file src/icon/left.obj file src/icon/right.obj file src/cursor/default.obj file src/cursor/cross.obj file src/cursor/text.obj file src/cursor/hidden.obj file src/widget/button.obj file src/widget/frame.obj file src/widget/opengl.obj file src/widget/window.obj file src/widget/menu.obj file src/widget/entry.obj file src/widget/submenu.obj file src/widget/viewport.obj file src/widget/image.obj file src/widget/scrollbar.obj file src/widget/checkbox.obj file src/widget/label.obj file src/widget/listbox.obj file src/widget/numberentry.obj file src/widget/progressbar.obj file src/widget/radiobox.obj file src/font/boldttf.obj file src/font/ttf.obj file src/font/boldfont.obj file src/font/font.obj file src/backend/gdi.obj library clib3r.lib library opengl32.lib library gdi32.lib library user32.lib +src/Mw.dll: src/default.obj src/lowlevel.obj src/color.obj src/directory.obj src/text.obj src/error.obj src/unicode.obj src/messagebox.obj src/string.obj src/filechooser.obj src/core.obj src/draw.obj external/stb_ds.obj external/stb_image.obj external/stb_truetype.obj src/icon/error.obj src/icon/info.obj src/icon/news.obj src/icon/note.obj src/icon/warning.obj src/icon/file.obj src/icon/directory.obj src/icon/back.obj src/icon/forward.obj src/icon/computer.obj src/icon/up.obj src/icon/search.obj src/icon/down.obj src/icon/left.obj src/icon/right.obj src/cursor/cross.obj src/cursor/default.obj src/cursor/text.obj src/cursor/hidden.obj src/widget/button.obj src/widget/frame.obj src/widget/window.obj src/widget/entry.obj src/widget/label.obj src/widget/opengl.obj src/widget/radiobox.obj src/widget/submenu.obj src/widget/menu.obj src/widget/image.obj src/widget/viewport.obj src/widget/listbox.obj src/widget/scrollbar.obj src/widget/checkbox.obj src/widget/numberentry.obj src/widget/progressbar.obj src/font/boldfont.obj src/font/boldttf.obj src/font/font.obj src/font/ttf.obj src/math/mmx_guard.obj src/math/mmx.obj src/math/default.obj src/math/math.obj src/backend/gdi.obj + $(LD) $(LDFLAGS) option implib=src/Mw.lib name $@ file src/default.obj file src/lowlevel.obj file src/color.obj file src/directory.obj file src/text.obj file src/error.obj file src/unicode.obj file src/messagebox.obj file src/string.obj file src/filechooser.obj file src/core.obj file src/draw.obj file external/stb_ds.obj file external/stb_image.obj file external/stb_truetype.obj file src/icon/error.obj file src/icon/info.obj file src/icon/news.obj file src/icon/note.obj file src/icon/warning.obj file src/icon/file.obj file src/icon/directory.obj file src/icon/back.obj file src/icon/forward.obj file src/icon/computer.obj file src/icon/up.obj file src/icon/search.obj file src/icon/down.obj file src/icon/left.obj file src/icon/right.obj file src/cursor/cross.obj file src/cursor/default.obj file src/cursor/text.obj file src/cursor/hidden.obj file src/widget/button.obj file src/widget/frame.obj file src/widget/window.obj file src/widget/entry.obj file src/widget/label.obj file src/widget/opengl.obj file src/widget/radiobox.obj file src/widget/submenu.obj file src/widget/menu.obj file src/widget/image.obj file src/widget/viewport.obj file src/widget/listbox.obj file src/widget/scrollbar.obj file src/widget/checkbox.obj file src/widget/numberentry.obj file src/widget/progressbar.obj file src/font/boldfont.obj file src/font/boldttf.obj file src/font/font.obj file src/font/ttf.obj file src/math/mmx_guard.obj file src/math/mmx.obj file src/math/default.obj file src/math/math.obj file src/backend/gdi.obj library clib3r.lib library opengl32.lib library gdi32.lib library user32.lib -src/core.obj: src/core.c - $(CC) $(CFLAGS) -fo=$@ $< -src/text.obj: src/text.c - $(CC) $(CFLAGS) -fo=$@ $< -src/string.obj: src/string.c - $(CC) $(CFLAGS) -fo=$@ $< -src/draw.obj: src/draw.c - $(CC) $(CFLAGS) -fo=$@ $< src/default.obj: src/default.c $(CC) $(CFLAGS) -fo=$@ $< -src/filechooser.obj: src/filechooser.c - $(CC) $(CFLAGS) -fo=$@ $< src/lowlevel.obj: src/lowlevel.c $(CC) $(CFLAGS) -fo=$@ $< -src/error.obj: src/error.c - $(CC) $(CFLAGS) -fo=$@ $< -src/unicode.obj: src/unicode.c - $(CC) $(CFLAGS) -fo=$@ $< src/color.obj: src/color.c $(CC) $(CFLAGS) -fo=$@ $< src/directory.obj: src/directory.c $(CC) $(CFLAGS) -fo=$@ $< +src/text.obj: src/text.c + $(CC) $(CFLAGS) -fo=$@ $< +src/error.obj: src/error.c + $(CC) $(CFLAGS) -fo=$@ $< +src/unicode.obj: src/unicode.c + $(CC) $(CFLAGS) -fo=$@ $< src/messagebox.obj: src/messagebox.c $(CC) $(CFLAGS) -fo=$@ $< +src/string.obj: src/string.c + $(CC) $(CFLAGS) -fo=$@ $< +src/filechooser.obj: src/filechooser.c + $(CC) $(CFLAGS) -fo=$@ $< +src/core.obj: src/core.c + $(CC) $(CFLAGS) -fo=$@ $< +src/draw.obj: src/draw.c + $(CC) $(CFLAGS) -fo=$@ $< external/stb_ds.obj: external/stb_ds.c $(CC) $(CFLAGS) -fo=$@ $< external/stb_image.obj: external/stb_image.c $(CC) $(CFLAGS) -fo=$@ $< external/stb_truetype.obj: external/stb_truetype.c $(CC) $(CFLAGS) -fo=$@ $< +src/icon/error.obj: src/icon/error.c + $(CC) $(CFLAGS) -fo=$@ $< src/icon/info.obj: src/icon/info.c $(CC) $(CFLAGS) -fo=$@ $< +src/icon/news.obj: src/icon/news.c + $(CC) $(CFLAGS) -fo=$@ $< src/icon/note.obj: src/icon/note.c $(CC) $(CFLAGS) -fo=$@ $< src/icon/warning.obj: src/icon/warning.c $(CC) $(CFLAGS) -fo=$@ $< -src/icon/error.obj: src/icon/error.c - $(CC) $(CFLAGS) -fo=$@ $< -src/icon/news.obj: src/icon/news.c +src/icon/file.obj: src/icon/file.c $(CC) $(CFLAGS) -fo=$@ $< src/icon/directory.obj: src/icon/directory.c $(CC) $(CFLAGS) -fo=$@ $< -src/icon/file.obj: src/icon/file.c - $(CC) $(CFLAGS) -fo=$@ $< src/icon/back.obj: src/icon/back.c $(CC) $(CFLAGS) -fo=$@ $< src/icon/forward.obj: src/icon/forward.c $(CC) $(CFLAGS) -fo=$@ $< -src/icon/up.obj: src/icon/up.c - $(CC) $(CFLAGS) -fo=$@ $< src/icon/computer.obj: src/icon/computer.c $(CC) $(CFLAGS) -fo=$@ $< +src/icon/up.obj: src/icon/up.c + $(CC) $(CFLAGS) -fo=$@ $< src/icon/search.obj: src/icon/search.c $(CC) $(CFLAGS) -fo=$@ $< src/icon/down.obj: src/icon/down.c @@ -128,10 +132,10 @@ src/icon/left.obj: src/icon/left.c $(CC) $(CFLAGS) -fo=$@ $< src/icon/right.obj: src/icon/right.c $(CC) $(CFLAGS) -fo=$@ $< -src/cursor/default.obj: src/cursor/default.c - $(CC) $(CFLAGS) -fo=$@ $< src/cursor/cross.obj: src/cursor/cross.c $(CC) $(CFLAGS) -fo=$@ $< +src/cursor/default.obj: src/cursor/default.c + $(CC) $(CFLAGS) -fo=$@ $< src/cursor/text.obj: src/cursor/text.c $(CC) $(CFLAGS) -fo=$@ $< src/cursor/hidden.obj: src/cursor/hidden.c @@ -140,41 +144,49 @@ src/widget/button.obj: src/widget/button.c $(CC) $(CFLAGS) -fo=$@ $< src/widget/frame.obj: src/widget/frame.c $(CC) $(CFLAGS) -fo=$@ $< -src/widget/opengl.obj: src/widget/opengl.c - $(CC) $(CFLAGS) -fo=$@ $< src/widget/window.obj: src/widget/window.c $(CC) $(CFLAGS) -fo=$@ $< -src/widget/menu.obj: src/widget/menu.c - $(CC) $(CFLAGS) -fo=$@ $< src/widget/entry.obj: src/widget/entry.c $(CC) $(CFLAGS) -fo=$@ $< +src/widget/label.obj: src/widget/label.c + $(CC) $(CFLAGS) -fo=$@ $< +src/widget/opengl.obj: src/widget/opengl.c + $(CC) $(CFLAGS) -fo=$@ $< +src/widget/radiobox.obj: src/widget/radiobox.c + $(CC) $(CFLAGS) -fo=$@ $< src/widget/submenu.obj: src/widget/submenu.c $(CC) $(CFLAGS) -fo=$@ $< +src/widget/menu.obj: src/widget/menu.c + $(CC) $(CFLAGS) -fo=$@ $< +src/widget/image.obj: src/widget/image.c + $(CC) $(CFLAGS) -fo=$@ $< src/widget/viewport.obj: src/widget/viewport.c $(CC) $(CFLAGS) -fo=$@ $< -src/widget/image.obj: src/widget/image.c +src/widget/listbox.obj: src/widget/listbox.c $(CC) $(CFLAGS) -fo=$@ $< src/widget/scrollbar.obj: src/widget/scrollbar.c $(CC) $(CFLAGS) -fo=$@ $< src/widget/checkbox.obj: src/widget/checkbox.c $(CC) $(CFLAGS) -fo=$@ $< -src/widget/label.obj: src/widget/label.c - $(CC) $(CFLAGS) -fo=$@ $< -src/widget/listbox.obj: src/widget/listbox.c - $(CC) $(CFLAGS) -fo=$@ $< src/widget/numberentry.obj: src/widget/numberentry.c $(CC) $(CFLAGS) -fo=$@ $< src/widget/progressbar.obj: src/widget/progressbar.c $(CC) $(CFLAGS) -fo=$@ $< -src/widget/radiobox.obj: src/widget/radiobox.c +src/font/boldfont.obj: src/font/boldfont.c $(CC) $(CFLAGS) -fo=$@ $< src/font/boldttf.obj: src/font/boldttf.c $(CC) $(CFLAGS) -fo=$@ $< +src/font/font.obj: src/font/font.c + $(CC) $(CFLAGS) -fo=$@ $< src/font/ttf.obj: src/font/ttf.c $(CC) $(CFLAGS) -fo=$@ $< -src/font/boldfont.obj: src/font/boldfont.c +src/math/mmx_guard.obj: src/math/mmx_guard.c $(CC) $(CFLAGS) -fo=$@ $< -src/font/font.obj: src/font/font.c +src/math/mmx.obj: src/math/mmx.c + $(CC) $(CFLAGS) -fo=$@ $< +src/math/default.obj: src/math/default.c + $(CC) $(CFLAGS) -fo=$@ $< +src/math/math.obj: src/math/math.c $(CC) $(CFLAGS) -fo=$@ $< src/backend/gdi.obj: src/backend/gdi.c $(CC) $(CFLAGS) -fo=$@ $< diff --git a/examples/basic/color_picker.c b/examples/basic/color_picker.c index c232c8a..92842ad 100644 --- a/examples/basic/color_picker.c +++ b/examples/basic/color_picker.c @@ -10,5 +10,7 @@ int main() { MwWidget cpicker = MwColorPicker(w, "cpicker"); + (void)cpicker; + MwLoop(w); } diff --git a/examples/color_picker.c b/examples/color_picker.c deleted file mode 100644 index 60bd1d2..0000000 --- a/examples/color_picker.c +++ /dev/null @@ -1,220 +0,0 @@ -/* $Id$ */ - -#include -MwWidget vp; - -#define WIN_SIZE 512 -#define PICKER_SIZE 360 -#define IMG_POS ((WIN_SIZE - PICKER_SIZE) / 2) -#define SCROLL_BAR_WIDTH 12 -#define MARGIN (PICKER_SIZE / 32) -#define COLOR_DISPLAY_HEIGHT 12 - -typedef struct { - double r; // a fraction between 0 and 1 - double g; // a fraction between 0 and 1 - double b; // a fraction between 0 and 1 -} rgb; - -typedef struct { - double h; // angle in degrees - double s; // a fraction between 0 and 1 - double v; // a fraction between 0 and 1 -} hsv; - -static rgb hsv2rgb(hsv in) { - rgb out; - - int i = (int)(floor(in.h * 6)); - double f = in.h * 6 - i; - double p = in.v * (1 - in.s); - double q = in.v * (1 - f * in.s); - double t = in.v * (1 - (1 - f) * in.s); - - switch(i % 6) { - case 0: - out.r = in.v, out.g = t, out.b = p; - break; - case 1: - out.r = q, out.g = in.v, out.b = p; - break; - case 2: - out.r = p, out.g = in.v, out.b = t; - break; - case 3: - out.r = p, out.g = q, out.b = in.v; - break; - case 4: - out.r = t, out.g = p, out.b = in.v; - break; - case 5: - out.r = in.v, out.g = p, out.b = q; - break; - } - - return out; -} - -typedef struct { - MwWidget parent; - MwWidget color_wheel_img; - MwWidget value_slider; - MwWidget color_display; - MwWidget color_display_text; - MwLLPixmap color_wheel_pixmap; - MwLLPixmap color_display_pixmap; - double value; - unsigned char* color_wheel_image_data; - unsigned char* color_display_image_data; - MwPoint point; -} color_wheel; - -void color_wheel_wheel_image_update(color_wheel* wheel) { - int y, x; - for(y = 0; y < PICKER_SIZE; y++) { - for(x = 0; x < PICKER_SIZE; x++) { - int i = ((y * PICKER_SIZE) + x) * 4; - int _x = x - (PICKER_SIZE / 2); - int _y = y - (PICKER_SIZE / 2); - - double dist = sqrt(_x * _x + _y * _y); - - if(dist >= 180.) { - wheel->color_wheel_image_data[i] = 0; - wheel->color_wheel_image_data[i + 1] = 0; - wheel->color_wheel_image_data[i + 2] = 0; - wheel->color_wheel_image_data[i + 3] = 0; - } else { - double xd = (M_PI / 180.) * ((double)_x); - double yd = (M_PI / 180.) * ((double)_y); - - float angle = atan2(yd, xd) - M_PI; - float hue = (angle * 180.) / M_PI; - - hsv hsv_v; - rgb color; - - if(hue < 0.0) { - hue += 360; - } - hsv_v.h = hue / 360.; - hsv_v.s = (dist / 179.61); - hsv_v.v = wheel->value; - color = hsv2rgb(hsv_v); - - wheel->color_wheel_image_data[i] = color.r * 255; - wheel->color_wheel_image_data[i + 1] = color.g * 255; - wheel->color_wheel_image_data[i + 2] = color.b * 255; - - wheel->color_wheel_image_data[i + 3] = 255; - } - } - } - if(wheel->color_wheel_pixmap != NULL) { - MwLLDestroyPixmap(wheel->color_wheel_pixmap); - } - wheel->color_wheel_pixmap = MwLoadRaw(wheel->parent, wheel->color_wheel_image_data, PICKER_SIZE, PICKER_SIZE); - MwVaApply(wheel->color_wheel_img, MwNpixmap, wheel->color_wheel_pixmap, NULL); -} - -static void color_wheel_click(MwWidget handle, void* user, void* call) { - color_wheel* wheel = (color_wheel*)user; - MwLLMouse* mouse = (MwLLMouse*)call; - char* hexColor; - int i, r, g, b, a; - - (void)handle; - (void)user; - (void)call; - - color_wheel_wheel_image_update(wheel); - - i = ((mouse->point.y * PICKER_SIZE) + mouse->point.x) * 4; - - r = wheel->color_wheel_image_data[i]; - g = wheel->color_wheel_image_data[i + 1]; - b = wheel->color_wheel_image_data[i + 2]; - a = wheel->color_wheel_image_data[i + 3]; - - (void)a; - - hexColor = malloc(8); - char* fgColor = malloc(8); - snprintf(hexColor, 8, "#%02X%02X%02X", r, g, b); - - int fr = r > 128 ? 0 : 255; - int fg = g > 128 ? 0 : 255; - int fb = b > 128 ? 0 : 255; - - snprintf(fgColor, 8, "#%02X%02X%02X", fr, fg, fb); - MwSetText(wheel->color_display, MwNbackground, hexColor); - MwSetText(wheel->color_display_text, MwNforeground, fgColor); - - MwSetText(wheel->color_display_text, MwNbackground, hexColor); - MwSetText(wheel->color_display_text, MwNtext, hexColor); - free(hexColor); -} -static void color_wheel_on_change_value(MwWidget handle, void* user, void* call) { - color_wheel* wheel = (color_wheel*)user; - - int value = MwGetInteger(handle, MwNvalue); - int diff = MwGetInteger(handle, MwNchangedBy); - - (void)diff; - (void)call; - - wheel->value = 1.0 - ((double)value / 1024.); - - color_wheel_wheel_image_update(wheel); -} -void color_wheel_setup(MwWidget parent, color_wheel* wheel) { - wheel->parent = parent; - - wheel->color_wheel_img = MwVaCreateWidget(MwImageClass, "image", wheel->parent, IMG_POS, IMG_POS, PICKER_SIZE, PICKER_SIZE, NULL); - - wheel->color_wheel_image_data = malloc(PICKER_SIZE * PICKER_SIZE * 4); - wheel->color_display_image_data = malloc(PICKER_SIZE * COLOR_DISPLAY_HEIGHT * 4); - - wheel->color_wheel_pixmap = NULL; - wheel->color_display_pixmap = NULL; - wheel->value = 1; - - color_wheel_wheel_image_update(wheel); - - MwAddUserHandler(wheel->color_wheel_img, MwNmouseDownHandler, color_wheel_click, wheel); - - wheel->color_display = MwCreateWidget(MwFrameClass, "colorDisplayFrame", wheel->parent, IMG_POS, IMG_POS + PICKER_SIZE + MARGIN, PICKER_SIZE, PICKER_SIZE / 16); - MwSetText(wheel->color_display, MwNbackground, "#000000"); - MwSetInteger(wheel->color_display, MwnhasBorder, 1); - MwSetInteger(wheel->color_display, MwNinverted, 1); - - wheel->color_display_text = MwCreateWidget(MwLabelClass, "colorDisplayFrameText", wheel->color_display, MwDefaultBorderWidth(parent), MwDefaultBorderWidth(parent), PICKER_SIZE - MwDefaultBorderWidth(parent), (PICKER_SIZE / 16) - (MwDefaultBorderWidth(parent) * 2)); - - wheel->value_slider = MwVaCreateWidget(MwScrollBarClass, "value-slider", wheel->parent, - // x - IMG_POS + - PICKER_SIZE + - MARGIN, - - // y - IMG_POS, - - // width - SCROLL_BAR_WIDTH, - - // height - PICKER_SIZE, - - MwNorientation, MwVERTICAL, MwNminValue, 0, MwNmaxValue, 1024, NULL); - - MwAddUserHandler(wheel->value_slider, MwNchangedHandler, color_wheel_on_change_value, wheel); -}; - -int main() { - MwWidget w = MwVaCreateWidget(MwWindowClass, "main", NULL, MwDEFAULT, MwDEFAULT, WIN_SIZE, WIN_SIZE, MwNtitle, "test", NULL); - - color_wheel wheel; - color_wheel_setup(w, &wheel); - - MwLoop(w); -} diff --git a/include/Mw/LowLevelMath.h b/include/Mw/LowLevelMath.h index d1493b4..651ca3f 100644 --- a/include/Mw/LowLevelMath.h +++ b/include/Mw/LowLevelMath.h @@ -9,8 +9,9 @@ #define __MW_LOWLEVEL_MATH_H__ #include +#include -#if !defined(__i386__) && !defined(__x86_64__) +#if !defined(__i386__) && !defined(__x86_64__) && !defined(__WATCOMC__) #warning LowLevelMath.h does not yet support non-X86 platforms #endif diff --git a/src/math/default.c b/src/math/default.c index 5233178..1c98e15 100644 --- a/src/math/default.c +++ b/src/math/default.c @@ -1,7 +1,7 @@ +/* $Id$ */ #include -#include "math.h" -#include -#include + +#include "math_internal.h" static void default_add_u8(MwLLVec* a, MwLLVec* b, MwLLVec* out) { out->un.u8.a = a->un.u8.a + b->un.u8.a; @@ -407,6 +407,6 @@ static MwLLMathVTable* defaultMultiTable[_MwLLVecType_Max] = { &table_i32, // _MwLLVecTypeI32x2 }; -MwLLMathVTable** default_multi_table() { +MwLLMathVTable** default_multi_table(void) { return defaultMultiTable; } diff --git a/src/math/math.c b/src/math/math.c index 152dea8..30dc6c2 100644 --- a/src/math/math.c +++ b/src/math/math.c @@ -1,11 +1,7 @@ +/* $Id$ */ #include -#include -#include -#include -#include -#include "math.h" -#include "Mw/BaseTypes.h" -#include "x86intrin.h" + +#include "math_internal.h" MwLLVec _MwLLVecCreateGeneric(MwLLVecType ty, ...) { MwLLVecUnion un; @@ -43,14 +39,23 @@ switch(ty) { } static MwBool hasMMX(void) { - MwU32 eax = 1; - MwU32 ebx, edx; + MwU32 _eax = 1; + MwU32 _ebx, _edx; +#ifdef __WATCOMC__ + __asm { + cpuid + mov _eax, eax + mov _ebx, ebx + mov _edx, edx + } +#else __asm__ __volatile__( - "cpuid" : "=a"(eax), "=b"(ebx), "=d"(edx) + "cpuid" : "=a"(_eax), "=b"(_ebx), "=d"(_edx) : "a"(1)); +#endif - return (edx & (1 << 23)) == (1 << 23); + return (_edx & (1 << 23)) == (1 << 23); } static MwLLMathVTable** mwLLMultiTable; diff --git a/src/math/math.h b/src/math/math_internal.h similarity index 95% rename from src/math/math.h rename to src/math/math_internal.h index b637c42..d725a26 100644 --- a/src/math/math.h +++ b/src/math/math_internal.h @@ -22,7 +22,7 @@ struct _MwLLMathVTable { typedef struct _MwLLMathVTable MwLLMathVTable; -MwLLMathVTable** default_multi_table(); +MwLLMathVTable** default_multi_table(void); void mmx_apply(MwLLMathVTable**); #endif diff --git a/src/math/mmx.c b/src/math/mmx.c index e45c399..bf88f61 100644 --- a/src/math/mmx.c +++ b/src/math/mmx.c @@ -1,13 +1,13 @@ +/* $Id$ */ #include -#include "math.h" -#include + +#include "math_internal.h" #include -#include -#include #define DO_MMX_INTRINSIC(intrin, _ty, _rty, _tyn) \ __m64 m = intrin(*(__m64*)&a->un._ty, *(__m64*)&b->un._ty); \ - out->un._rty = *(struct _tyn*)&m; + struct _tyn* t = (struct _tyn*)&m; \ + out->un._rty = *t; static void mmx_add_u8(MwLLVec* a, MwLLVec* b, MwLLVec* out) { DO_MMX_INTRINSIC(_m_paddusb, u8, u8, _MwLLVecDataU8x8); diff --git a/src/math/mmx_guard.c b/src/math/mmx_guard.c index 7d2fdd3..be3832c 100644 --- a/src/math/mmx_guard.c +++ b/src/math/mmx_guard.c @@ -1,3 +1,4 @@ +/* $Id$ */ #if defined(__WATCOMC__) || defined(__i386__) || defined(__amd64__) #include "mmx.c" #else diff --git a/tools/genmk.pl b/tools/genmk.pl index 79db1af..02fb8ba 100755 --- a/tools/genmk.pl +++ b/tools/genmk.pl @@ -150,6 +150,7 @@ scan("src/cursor"); scan("src/widget"); scan("src/text"); scan("src/font"); +scan("src/math"); push(@cfiles, "src/backend/gdi.c"); generate("BorMakefile", "Borland");