From d3259a3b64790629c719eadb9d0f35c4d3753e55 Mon Sep 17 00:00:00 2001 From: Martin Iturbide Date: Mon, 8 May 2023 15:25:18 -0500 Subject: [PATCH] 1.01 Compiled with gcc 9 and ArcaOS 5.0.7 --- BUILD.CMD | 2 -- FASTGPI.C | 19 ++++++----- FASTGPI.DEF | 9 ++++-- FASTGPI.EXE | Bin 35860 -> 0 bytes FASTGPI.TXT | 90 +++++++++++++++++++++++++++++++++------------------- compile.cmd | 5 +++ makefile | 19 +++++++++++ 7 files changed, 98 insertions(+), 46 deletions(-) delete mode 100644 BUILD.CMD delete mode 100644 FASTGPI.EXE create mode 100644 compile.cmd create mode 100644 makefile diff --git a/BUILD.CMD b/BUILD.CMD deleted file mode 100644 index 80046dc..0000000 --- a/BUILD.CMD +++ /dev/null @@ -1,2 +0,0 @@ -@echo off -gcc -o fastgpi -O fastgpi.c a-float.c fastgpi.def diff --git a/FASTGPI.C b/FASTGPI.C index 1f5eb69..6ebde35 100644 --- a/FASTGPI.C +++ b/FASTGPI.C @@ -1,5 +1,8 @@ -/* $Id: inten5pm.c 1.6 93/09/19 05:14:07 Unknown Exp Locker: Unknown $ */ -/* Copyright (c) 1994 Donald Graft, All Rights Reserved */ +/* + * fastgpi.c + * + * Donald Graft + */ #define INCL_DOS #define INCL_WIN @@ -9,6 +12,7 @@ #include #include #include +#include #include "a-float.h" /* ENDINCL */ @@ -30,16 +34,15 @@ PBITMAPINFO2 pbmi; BYTE RGBmap[32]; BYTE Bitmap[NUM_MASSES_X*NUM_MASSES_Y]; POINTL aptl[3] = - { 0u, 0u, NUM_MASSES_X, NUM_MASSES_Y, 0u, 0u }; + { {0u, 0u}, {NUM_MASSES_X, NUM_MASSES_Y}, {0u, 0u} }; MRESULT EXPENTRY window_func(HWND, ULONG, MPARAM, MPARAM); void Model(ULONG); void PrepareGraphics(BYTE *); void DisplayPlane(float **current); float ***Storage(); - -void -main(void) + +int main(void) { HMQ hmq; QMSG qmsg; @@ -139,7 +142,7 @@ window_func(HWND handle, ULONG mess, MPARAM parm1, MPARAM parm2) /* Create a semaphore to control access to the memory image presentation space. Only one thread can perform Gpi operations on it at a time. */ - DosCreateMutexSem("\\sem32\\Lock", &hmtxLock, 0, FALSE); + DosCreateMutexSem((PCSZ)"\\sem32\\Lock", &hmtxLock, 0, FALSE); /* Create a thread to run the system model. */ DosCreateThread(&tidModel, Model, 0UL, 0UL, 4096); @@ -230,7 +233,7 @@ Model(ULONG dummy) /* Display results. */ DisplayPlane(current); - + /* Advance epoch. */ count++; tmp = inhibitory; diff --git a/FASTGPI.DEF b/FASTGPI.DEF index 4f689d9..71d4439 100644 --- a/FASTGPI.DEF +++ b/FASTGPI.DEF @@ -1,5 +1,8 @@ -NAME STDPRGM WINDOWAPI +;----------------------------------- +; BEZIER.DEF module definition file +;----------------------------------- -DESCRIPTION 'Skeleton Program' -HEAPSIZE 1024 +NAME FASTGPI WINDOWAPI + +DESCRIPTION '@#OS2World:1.01#@##1## 07 May 2023 20:00:00 ARCAOS-507::::::v1.01@@Getting Fast GPI Graphics Demo.' STACKSIZE 8192 diff --git a/FASTGPI.EXE b/FASTGPI.EXE deleted file mode 100644 index 46d13b46ad7875e554ef454e7c77a1f5369a7741..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35860 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 Z^8{+96%YspUAS8UJjp5mdJYu>0|4b3gI)jt diff --git a/FASTGPI.TXT b/FASTGPI.TXT index 6ff1ce3..8c5579b 100644 --- a/FASTGPI.TXT +++ b/FASTGPI.TXT @@ -1,23 +1,19 @@ -Method for Getting Fast Graphics through the OS/2 GPI ------------------------------------------------------ - - People are often surprised and dismayed to find that the GPI can be -very slow if it is used naively. One of the biggest mistakes is to try to -write a large number of pixels using GpiSetPel(). To reassure people that -fast screen writes CAN be achieved with the GPI and without needing to -go to the MMPM direct-screen support (DIVE), I have provided this little -example. As a bonus, it also shows how to use bitmaps, how to write a -multi-threaded application, how to use semaphores, and how to set up a -gray-scale palette. Also, you can learn about classical wave behavior +Name: REVOLVE +Descripcion: Demonstrates Fast GPI Graphics +Date: 2023-05-07 +Version: 1.07 +---------------------------- + +DESCRIPTION +----------- +Method for Getting Fast Graphics through the OS/2 GPI. + +People are often surprised and dismayed to find that the GPI can be very slow if it is used naively. One of the biggest mistakes is to try to write a large number of pixels using GpiSetPel(). To reassure people that fast screen writes CAN be achieved with the GPI and without needing to go to the MMPM direct-screen support (DIVE), I have provided this little example. As a bonus, it also shows how to use bitmaps, how to write a multi-threaded application, how to use semaphores, and how to set up a gray-scale palette. Also, you can learn about classical wave behavior and its difference equation representation! - The basic technique for fast screen writes is to make a bitmap that -corresponds to the screen. Then, using GpiSetBitmapBits(), this bitmap -is updated and then blitted to the screen. This requires only two GPI -calls to write an arbitrary number of pixels, instead of doing a call to -set the color and a call to write the pixel for EACH pixel. +The basic technique for fast screen writes is to make a bitmap that corresponds to the screen. Then, using GpiSetBitmapBits(), this bitmap is updated and then blitted to the screen. This requires only two GPI calls to write an arbitrary number of pixels, instead of doing a call to set the color and a call to write the pixel for EACH pixel. - Here are miscellaneous notes. +Here are miscellaneous notes. 1) The example implements a simulation of two interfering circular wave sources in two dimensions. The output is displayed with a 32-level @@ -28,7 +24,7 @@ set the color and a call to write the pixel for EACH pixel. applications. I have not tried this at other resolutions, but things should work OK (or could be easily adjusted for). -3) Built with GCC/2 2.5.4. +3) Built with GCC 9. 4) The screens are written very fast [DisplayPlane()] but there is delay between the screen writes due to the many thousands of floating-point @@ -48,22 +44,50 @@ set the color and a call to write the pixel for EACH pixel. 8) The example is multithreaded; one thread does the model, one does the main window handling. Down with clock icons!!! -9) Thanks to George Thiruvathakal for providing the array support package. - It makes possible the highly efficient shifting of planes required at - each epoch update (an operation not possible with straightforward - 3-dimensional C array syntax). +REQUIREMENTS +------------ +- yum install git gcc make libc-devel binutils watcom-wrc watcom-wlink-hll + +COMPILE INSTRUCTIONS +-------------------- +This version of this sample was modified to compile on ArcaOS with GCC 9 compiler. + +1) Remember to have correct header files your path. For GCC the correct ones are the included on the "libc-devel", not the ones from the OS/2 Toolkit. Check your config.sys for "SET INCLUDE=C:\usr\include" + +2) Since I'm using the Watcom Resource Compiler (open source) instead of the classic rc.exe, and the the Watcom Linker, intead of the classic ilink.exe, add to your config.sys... + SET EMXOMFLD_LINKER=wl.exe + SET EMXOMFLD_TYPE=WLINK + SET EMXOMFLD_RC_TYPE=WRC + SET EMXOMFLD_RC=wrc.exe + +3) Run "make" or "make 2>&1 |tee make.out" to get the log file. + + +TOOLS USED +---------- +- ArcaOS - Verion 5.0.7 +- wrc - Watcom Resource Compiler version 2.0beta1 +- wl - Watcom Linker +- gcc - gcc (GCC) 9.2.0 20190812 (OS/2 RPM build 9.2.0-5.oc00) +- make - Version 3.81 k2 (2017-11-10) + +TROUBLESHOOT +------------ +The compile produce will run by just executing make on the directory, but a compile.cmd file is includes to store the log in a file. If you want to save the log file you can run it as "nmake 2>&1 |tee make.out". The log will be saved into the "make.out" file. -10) Permission to use as a guide for your own applications. Have fun! - Feedback to: +HISTORY +---------- +- 1.07 - 2023-05-07 +Changed version to compile on gcc and to run on ArcaOS 5.0.7. - Donald Graft dgraft@gate.net +- 1.06 - 1988 +Original version by Charles Petzold - The following files make up the example application: +LICENSE +------- +The 3-Clause BSD License. - build.cmd -- command file to build the application. Assumes GCC/2 2.5.4. - fastgpi.def -- module definition file - fastgpi.c -- main file - fastgpi.exe -- the executable - fastgpi.doc -- this file - a-float.h -- header for array package - a-float.c -- array package code +AUTHORS +------- +- Martin Iturbide (2023) +- Donald Graft \ No newline at end of file diff --git a/compile.cmd b/compile.cmd new file mode 100644 index 0000000..2be196b --- /dev/null +++ b/compile.cmd @@ -0,0 +1,5 @@ +REM SET C_INCLUDE_PATH=c:/usr/include;%C_INCLUDE_PATH% +REM SET INCLUDE=C:\usr\include +REM SET EMXOMFLD_TYPE=WLINK +REM SET EMXOMFLD_LINKER=wl.exe +make 2>&1 |tee make.out diff --git a/makefile b/makefile new file mode 100644 index 0000000..fa749c7 --- /dev/null +++ b/makefile @@ -0,0 +1,19 @@ +# nmake makefile +# +# Tools used: +# Compile::Watcom Resource Compiler +# Compile::GNU C +# Make: nmake or GNU make +all : fastgpi.exe + +fastgpi.exe : fastgpi.obj fastgpi.def a-float.obj + gcc -Zomf fastgpi.obj a-float.obj fastgpi.def -o fastgpi.exe + +fastgpi.obj : fastgpi.c + gcc -Wall -Zomf -c -O2 fastgpi.c -o fastgpi.obj + +a-float.obj : a-float.c a-float.h + gcc -Wall -Zomf -c -O2 a-float.c -o a-float.obj + +clean : + rm -rf *exe *RES *obj *hlp