Make GRAPHIC select the text plane
Some checks failed
akbasic CI Build / cmake_build (push) Failing after 3m22s
akbasic CI Build / sanitizers (push) Failing after 4m43s
akbasic CI Build / coverage (push) Failing after 3m43s
akbasic CI Build / akgl_build (push) Failing after 4m48s
akbasic CI Build / mutation_test (push) Failing after 3m31s
Some checks failed
akbasic CI Build / cmake_build (push) Failing after 3m22s
akbasic CI Build / sanitizers (push) Failing after 4m43s
akbasic CI Build / coverage (push) Failing after 3m43s
akbasic CI Build / akgl_build (push) Failing after 4m48s
akbasic CI Build / mutation_test (push) Failing after 3m31s
Co-authored-by: Andrew Kesterson <andrew@aklabs.net>
This commit is contained in:
@@ -189,6 +189,10 @@ typedef struct
|
||||
int columns; /* the character grid the cell size works out to */
|
||||
int rows;
|
||||
|
||||
/* GRAPHIC chooses whether this text plane is visible and where it begins. */
|
||||
int graphicmode;
|
||||
int texttop; /* first screen row the current text region owns */
|
||||
|
||||
int cursorcol;
|
||||
int cursorrow;
|
||||
|
||||
|
||||
@@ -82,6 +82,20 @@ typedef struct akbasic_TextSink
|
||||
* @return `NULL` on success, otherwise an error context owned by the caller.
|
||||
*/
|
||||
akerr_ErrorContext AKERR_NOIGNORE *(*grid)(struct akbasic_TextSink *self, int *columns, int *rows, int *cellw, int *cellh);
|
||||
/**
|
||||
* Select how this sink's text plane participates in a GRAPHIC display mode.
|
||||
*
|
||||
* This is optional: a stream has no display plane to hide or split, so the
|
||||
* stdio sink leaves it NULL. A graphical sink receives the mode after the
|
||||
* runtime has validated it. @p split is the first text row for a split mode,
|
||||
* or -1 when BASIC used the C128 default.
|
||||
*
|
||||
* @param self The sink.
|
||||
* @param mode BASIC 7.0 GRAPHIC mode.
|
||||
* @param split First text row for a split screen, or -1 for the default.
|
||||
* @return `NULL` on success, otherwise an error context owned by the caller.
|
||||
*/
|
||||
akerr_ErrorContext AKERR_NOIGNORE *(*graphic)(struct akbasic_TextSink *self, int mode, int split);
|
||||
} akbasic_TextSink;
|
||||
|
||||
/** @brief State for the stdio-backed sink. */
|
||||
|
||||
Reference in New Issue
Block a user