Create README.md

This commit is contained in:
ozkl 2019-09-04 16:35:55 +03:00 committed by GitHub
parent 7154308610
commit 07522ee4c4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

35
README.md Normal file
View File

@ -0,0 +1,35 @@
# doomgeneric
The purpose of doomgeneric is to make porting Doom easier.
Of course Doom is already portable but with doomgeneric it is possible with just a few functions.
The limitation is there is no sound!
# porting
Create a file named doomgeneric_yourplatform.c and just implement these functions to suit your platform.
* DG_Init
* DG_DrawFrame
* DG_SleepMs
* DG_GetTicksMs
* DG_GetKey
|Functions |Description|
|---------------------|-----------|
|DG_Init |Initialize your platfrom (create window, framebuffer, etc...).
|DG_DrawFrame |Frame is ready in DG_ScreenBuffer. Copy it to your platform's screen.
|DG_SleepMs |Sleep in milliseconds.
|DG_GetTicksMs |The ticks passed since launch in milliseconds.
|DG_GetKey |Provide keyboard events.
|DG_SetWindowTitle |Not required. This is for setting the window title as Doom sets this from WAD file.
# platforms
I have ported to Windows, X11, and Soso.
Note that X11 port is not efficient since it generates pixmap by XDrawPoint. It can be further improved by using X11 extensions.
## Windows
![Windows](screenshots/windows.png)
## X11 - Ubuntu
![Ubuntu](screenshots/ubuntu.png)
## X11 - FreeBSD
![FreeBSD](screenshots/freebsd.png)