Bill Currie
966bd267c5
Add a set of macros for dynamic arrays
...
Includes docs and test cases.
2020-03-20 12:59:25 +09:00
Bill Currie
298fcbbf70
[qfcc] Add ExitCode support to quake-pascal
...
gcd now passes :)
2020-03-20 12:59:25 +09:00
Bill Currie
ed03eeb8d2
[qfcc] Resync qc and qp common symbols
...
Forgot I needed to remove PAS from pascal as well.
2020-03-20 12:59:25 +09:00
Bill Currie
f64038b872
[qfcc] Add gcd.pas to the tests
2020-03-20 12:59:25 +09:00
Bill Currie
ec12941fcb
Move the ring buffer macros to their own header
...
They seem to have proven themselves to be robust.
2020-03-19 23:53:54 +09:00
Bill Currie
65538104bf
[qwaq] Tweak listener message names
...
I didn't like the message:message bit
2020-03-19 23:18:01 +09:00
Bill Currie
ac23156ecd
[qwaq] Clamp window motion to owner's bounds
2020-03-19 21:28:55 +09:00
Bill Currie
f329ca83b6
[qwaq] Ensure background color clearing works
...
Even with 0 for the character, colors should get into the buffer.
2020-03-19 20:41:29 +09:00
Bill Currie
3a28d84c3f
[qwaq] Implement window dragging
...
Other than the stray panel_free, that was surprisingly easy. However, do
need to check that the window can be moved otherwise window pos and
panel pos will get out of sync.
2020-03-19 20:31:59 +09:00
Bill Currie
fe4f831512
[qwaq] Remove a pile of stray panel_free calls
...
C&P programming FTW :P
2020-03-19 20:31:01 +09:00
Bill Currie
f027a42e72
[qwaq] Treat 0 as transparent character
2020-03-19 19:53:32 +09:00
Bill Currie
14fbdc7df9
[qwaq] Clean up debug in TextContext
2020-03-19 19:35:19 +09:00
Bill Currie
e8d947ed8a
[qwaq] Get click and drag reporting working
2020-03-19 19:25:57 +09:00
Bill Currie
95d20d67c7
[qwaq] Implement mouse grabbing
...
Button will need it for dragging.
2020-03-19 19:00:03 +09:00
Bill Currie
2c20a031e4
[qwaq] Do up a little button test "scene"
...
Hmm... "scene"... too much Unity?
2020-03-19 18:41:53 +09:00
Bill Currie
cce6837fe8
[qwaq] Offset event mouse coordinates
...
Each level of the object hierarchy has its own offset relative to the
level above, but mouse coordinates are absolute.
2020-03-19 18:40:21 +09:00
Bill Currie
28a9e041e6
[qwaq] Implement Group redraw
2020-03-19 18:39:11 +09:00
Bill Currie
8bd702ab1a
[qwaq] Fetch View origin and size separately
2020-03-19 18:38:24 +09:00
Bill Currie
e49ba896aa
[qwaq] Support background and clearing in DrawBuffer
2020-03-19 18:37:25 +09:00
Bill Currie
490f1ad4b8
[qwaq] Add wrappers for werase
2020-03-19 18:37:05 +09:00
Bill Currie
ec2409ceba
[qwaq] Mention that Window knows addView
2020-03-19 17:34:29 +09:00
Bill Currie
1306d9fcdd
[qwaq] Fix some issues in Listener*
2020-03-19 17:33:47 +09:00
Bill Currie
19161ea80a
[qwaq] Clean things up in prep for button testing
2020-03-19 16:27:30 +09:00
Bill Currie
23e6b49845
[qwaq] Implement mouse enter/leave events
2020-03-19 15:55:57 +09:00
Bill Currie
3e9977c272
[qwaq] Give up on pass-by-reference for now
...
It's too much hassle to ensure the passed variable isn't a local. It's
just not worth the grief right now.
2020-03-19 15:54:10 +09:00
Bill Currie
db39f7ed3e
[qwaq] Add hover listener to button
...
Forgot about this (very useful for tooltips etc).
2020-03-19 13:57:10 +09:00
Bill Currie
bd3884f6fa
[qwaq] Add a button class
...
It may or may not work just yet, but I think it's the right direction.
2020-03-19 13:52:14 +09:00
Bill Currie
6a18b1dd55
[qwaq] Add function to merge extents
...
It's pretty much the union of two rectangles with the same origin.
2020-03-19 13:51:14 +09:00
Bill Currie
03f87d6f27
[qwaq] Add pos Point alias
2020-03-19 13:50:35 +09:00
Bill Currie
8c3cf83f02
[qwaq] Add Listener and ListenerGroup delegates
...
Simple single parameter (caller) direct messages.
2020-03-19 13:49:27 +09:00
Bill Currie
01835cbd94
[qwaq] Add blitFromBuffer to TextContext protocol
2020-03-19 13:48:48 +09:00
Bill Currie
2f3ca9d9e4
[qwaq] Clean up the hierarchy
...
I think I've finally figured out what I want the core hierarchy to be.
Right now, it's just the two classes: View and Window (derived from
View). Window has a Group, and Group is just a collection of Views that
it manages. QwaqApplication is just an object but like a Window, it has
a Group of views.
View
Window has a Group
Group contains Views
QwaqApplication has a group
More work needs to be done on drawing and event handling, but things are
working again.
2020-03-19 11:32:44 +09:00
Bill Currie
b16093a533
[qwaq] Split out Array(Group) interface
2020-03-19 11:04:02 +09:00
Bill Currie
7447854d7c
[qfcc] Recover from syntax errors in abstract_decl
2020-03-19 11:01:26 +09:00
Bill Currie
4c6e1b7fc4
[qfcc] Fix some uninitialized variable warnings
...
I really wish gcc would catch more issues when not optimizing.
2020-03-18 01:51:52 +09:00
Bill Currie
f6f6b2cba3
[qwaq] Doc the issue number for blit slug
2020-03-18 01:40:58 +09:00
Bill Currie
affadc3d25
[qwaq] Create protocols for DrawBuffer and TextContext
...
Plenty of flaws at the moment (casts to id :/), but the basic idea seems
to be ok.
2020-03-18 01:40:41 +09:00
Bill Currie
e5bc6dd8b6
[qwaq] Split Array(Group) into its own file
2020-03-18 01:12:23 +09:00
Bill Currie
0293d335d0
[qfcc] Mark known source def live for movep
...
This fixes ivar-struct-return (and qwaq).
2020-03-18 00:02:36 +09:00
Bill Currie
43ea34535e
[qfcc] Make ivar-struct-return fail
...
It turns out that assignments to struct fields are not counted as live
when the whole struct is later used via a pointer move.
2020-03-17 23:39:17 +09:00
Bill Currie
22cd39c853
[qfcc] Mark ptr assignment offset as an operand
...
This fixes structptr. All current tests pass.
2020-03-17 23:05:57 +09:00
Bill Currie
578bf9a16f
[qfcc] Set dag node value for movep
...
This fixes compilation of all tests. However, structptr still fails.
2020-03-17 22:54:27 +09:00
Bill Currie
34c9ec51bb
[qfcc] Make opcode and statement type names available
2020-03-17 22:46:23 +09:00
Bill Currie
77806f4b1b
[qfcc] Get dag code generation mostly working
...
There's an ICE in return-ivar, but assignchain passes let alone builds.
2020-03-17 22:35:36 +09:00
Bill Currie
16bda66785
[qfcc] Add more statement types for move/memset
...
They ease the statement checks between assign/move/memset and the
pointer versions (don't need all those strcmps)
2020-03-17 21:39:49 +09:00
Bill Currie
3c2f6c8447
[qfcc] Simplify flow_analyize_pointer_operand
...
and its usage. The parts of flow_analyze_statement that use it know
where the returned operand needs to go. Unfortunately, this breaks dags
pretty hard, but that's because dags needs to learn about the fancy
assignment-type statements.
2020-03-17 21:30:16 +09:00
Bill Currie
dec2e6249e
[qfcc] Increase flow operand count to 5
...
MOVEP instructions have up to 5 operands: 2 pointers, the count, and 0-2
referenced variables (when known).
2020-03-17 21:24:12 +09:00
Bill Currie
fa2cbc72d8
[qfcc] Analyze tempop pointers in move/memset statements
2020-03-17 15:48:06 +09:00
Bill Currie
6ec92fb83b
[qfcc] Point pointer tempop to the operand
...
It turns out I need the operand itself, not just the tempop.
2020-03-17 15:47:42 +09:00
Bill Currie
0de011d0bf
[qfcc] Add some disabled additional statement info
...
It's a bit cluttered for normal debugging, but I haven't decided how to
make it optional just yet.
2020-03-17 15:23:24 +09:00