Peter Evans
6a230341e1
Make vm_area_set be an inline function.
...
Gets most of the benefits of being a macro, but also gains type safety
(which macros do not have).
2017-12-27 17:10:51 -06:00
Peter Evans
30223e0bca
Remove screen area field; document area fields
2017-12-27 16:59:56 -06:00
Peter Evans
27f91ec00f
Use vm_area with bitfont_offset
...
This should further standardize on vm_area.
2017-12-27 16:47:26 -06:00
Peter Evans
efb8f04555
Use vm_area for draw_rect.
...
This simplifies and to some degree normalizes the way we reference areas
in the vm subsystem.
2017-12-27 16:42:30 -06:00
Peter Evans
c7b830bb4a
Switch references from SDL_Rect to vm_area
...
We still use SDL_Rect internally, but we want to abstract the use of it
in our API. The only thing the rest of the app should care about is the
vm_area struct.
2017-12-27 16:31:02 -06:00
Peter Evans
5407ce2d32
Add documentation for option functions
2017-12-27 14:32:13 -06:00
Peter Evans
76191991c8
Add a lot of missing documentation
2017-12-27 01:14:52 -06:00
Peter Evans
bcf354989d
Tests for bitfont and screen
2017-12-27 01:02:56 -06:00
Peter Evans
eeecaf4bdc
Add tests for get_width and get_height
2017-12-26 22:35:50 -06:00
Peter Evans
04d40a44f9
Reorganize tests
2017-12-26 17:20:06 -06:00
Peter Evans
f8ce9ae1d1
Documentation
2017-12-26 17:13:34 -06:00
Peter Evans
8146687110
Don't create a window when testing
...
We do this by creating the notion of a "headless" mode, and skip window
creation in SDL.
2017-12-26 17:06:08 -06:00
Peter Evans
5b35e2294e
Add tests for new functions in apple2
2017-12-26 17:03:32 -06:00
Peter Evans
89a6161272
Reorganize header files
2017-12-26 16:47:34 -06:00
Peter Evans
253db81460
Comment out unused instruction string table
2017-12-26 16:45:24 -06:00
Peter Evans
81804532df
Reorganize log.c
2017-12-26 16:44:28 -06:00
Peter Evans
68084cc0c3
Add apple2 header file
2017-12-26 16:43:08 -06:00
Peter Evans
a86fc8e80e
Reorganize
2017-12-26 16:42:04 -06:00
Peter Evans
5fbd921d83
Reorganize
2017-12-26 16:39:32 -06:00
Peter Evans
f5af03786d
Reorganize
2017-12-26 16:39:23 -06:00
Peter Evans
f50d599545
Beginnings of lo-res graphics
2017-12-24 15:07:24 -06:00
Peter Evans
7b19279f1d
No need for this comment any longer
2017-12-22 20:45:26 -06:00
Peter Evans
4ad690212f
Blank out the space we want to render a character
2017-12-22 17:49:36 -06:00
Peter Evans
29652b2368
Implement draw text functionality
2017-12-22 15:48:48 -06:00
Peter Evans
b2c1bd9e6d
Hello world, in rendered text; use nearest pixel sampling
...
The scale change removes some blurriness that we saw when copying pixels
from the bitmap font into the renderer.
2017-12-22 12:56:22 -06:00
Peter Evans
979ca65f43
Add bitmap font to apple2, remove rectangle draw
2017-12-21 23:33:04 -06:00
Peter Evans
adac6346e8
Add color mode, text video modes
2017-12-21 11:52:56 -06:00
Peter Evans
87b67216b0
Default to lo-res mode
2017-12-20 21:54:54 -06:00
Peter Evans
23e113e72a
Add video mode switcher to handle logical sizes
2017-12-20 21:52:28 -06:00
Peter Evans
7d62548248
Add the bones of the draw functions and file
2017-12-20 21:33:15 -06:00
Peter Evans
f55b608bee
Move screen run logic into apple run_loop and create
2017-12-20 20:45:26 -06:00
Peter Evans
8c23f3fa7e
Switch window sizes for 4.375:3
2017-12-20 19:32:54 -06:00
Peter Evans
53db99f4fd
Use size options for window
2017-12-20 17:08:19 -06:00
Peter Evans
609e3eea7c
Add size option, functions to get width and height
2017-12-20 17:06:03 -06:00
Peter Evans
b1c146c62d
Add ability to set logical size of window at any time
...
We also removed the scale field, as the screen does not expect to manage
its own logical coordinates in SDL.
Additionally, we added an xcoords and ycoords function to the screen
externs so that you don't have to "know" that screen has those as
fields.
2017-12-20 16:44:24 -06:00
Peter Evans
f31fcd9c37
Add support for vm_bitfont
2017-12-19 21:50:50 -06:00
Peter Evans
aefe74cae4
Use BMP format, since SDL can load it natively.
...
(Vs. needing to install SDL_image just for the font files.)
2017-12-19 16:13:04 -06:00
Peter Evans
aad60fa629
Oh, lord, I included my random natterings
2017-12-19 15:35:10 -06:00
Peter Evans
6db322ae5c
I wrote a tool to build fonts from grid files.
...
This commit also adds the first such output, which is the apple II
system font.
2017-12-19 15:28:42 -06:00
Peter Evans
28cd93d5e9
Do static analysis if env variable is set
2017-12-19 01:02:48 -06:00
Peter Evans
dfbe0750ae
In which I spent an evening plotting a bitmap font
...
The idea here is to eventually write something that can convert these
(very simple to edit) grid files into an image file which we can then
read parts from and copy onto the screen.
This is also a template for how we can implement other default typefaces
that may come with other platforms we may wish to emulate (for example,
C64).
2017-12-19 00:48:06 -06:00
Peter Evans
c84f194c8b
Get our test suite working with SDL
...
Had to remove a couple of screen tests for now; it needs a big re-think
now that we're using SDL. Namely, how do we test SDL?
2017-12-18 14:46:40 -06:00
Peter Evans
05a641c8f6
Use SDL's render logical size feature
...
This allows us to work with the pure x/y coordinate system we set when
creating the vm_screen. SDL will take care of the translation of those
coordinates to whatever the window size is.
2017-12-18 14:32:15 -06:00
Peter Evans
f3966dc010
Enable static analysis through clang
...
If you want to, just uncomment the line that adds the --analyze flag to
CMAKE_C_FLAGS.
2017-12-18 14:26:53 -06:00
Peter Evans
4ef9e50792
Really basic implementation of SDL2.
...
Plus a crappy rectangle to prove that our vm screen code is working in
principle. (It will be removed shortly.)
2017-12-17 23:31:56 -06:00
Peter Evans
ad37d59b2d
Remove references to OpenGL/GLFW/GLEW
2017-12-17 20:20:11 -06:00
Peter Evans
afa07e346f
A few comments
2017-12-17 19:22:33 -06:00
Peter Evans
83dcfaf646
Add glew, defines for width/height
2017-12-17 19:09:54 -06:00
Peter Evans
a73c15c37c
Rename vm_screen_context to vm_screen
2017-12-17 16:42:05 -06:00
Peter Evans
8beb761535
Actually show a window.
...
This is also the beginning outline of how we want to abstract graphics
away in erc.
2017-12-16 23:38:59 -06:00