Fixed vector images and other misc stuff.

This commit is contained in:
Scott Duensing 2018-11-08 21:14:05 -06:00
parent 750c0733b0
commit afdd4dc8a5
4 changed files with 32 additions and 30 deletions

View file

@ -25,10 +25,6 @@
SHRShad gequ $012000 SHRShad gequ $012000
;savedDBR data ; Storage for Data Bank Register
; ds 2 ; 16 bits
; end ; Used by jIIgs.macro
ScanTable data ScanTable data
ds 400 ; 400 bytes for scanline offsets ds 400 ; 400 bytes for scanline offsets
end end

View file

@ -68,8 +68,6 @@
; === START OF OUR MODIFICATION === ; === START OF OUR MODIFICATION ===
phb ; Push Data Bank Register phb ; Push Data Bank Register
phb ; Push Data Bank Register phb ; Push Data Bank Register
; pla ; Pull Accumulator
; sta >savedDBR ; Store Accumulator in savedDBR (Data Bank Register)
phk ; Push K (Program Bank Register) phk ; Push K (Program Bank Register)
plb ; Pull Data Bank Register plb ; Pull Data Bank Register
; === END OF OUR MODIFICATION === ; === END OF OUR MODIFICATION ===
@ -82,9 +80,6 @@
&lab anop &lab anop
; === START OF OUR MODIFICATION === ; === START OF OUR MODIFICATION ===
; using savedDBR
; lda >savedDBR ; Load our saved Data Bank Register
; pha ; Push the C Accumulator
plb ; Pull Data Bank Register plb ; Pull Data Bank Register
plb ; Pull Data Bank Register plb ; Pull Data Bank Register
; === END OF OUR MODIFICATION === ; === END OF OUR MODIFICATION ===

View file

@ -45,9 +45,6 @@
#define COMMAND_FBOX 9 // S (Solid Box) #define COMMAND_FBOX 9 // S (Solid Box)
#define COMMAND_FILLTO 10 // T (FillTo) #define COMMAND_FILLTO 10 // T (FillTo)
#define VEC_SCALE_DOWN 0.8 // 256/320
#define VEC_SCALE_UP 1.25 // 320/256
typedef struct { typedef struct {
jint16 StartX; jint16 StartX;
@ -63,8 +60,7 @@ typedef struct {
byte _jlDrawColor = 15; // Color in lower nibble only byte _jlDrawColor = 15; // Color in lower nibble only
byte _jlDrawColorNibbles = (15 << 4) + 15; // Color in both nibbles byte _jlDrawColorNibbles = (15 << 4) + 15; // Color in both nibbles
byte _jlBorderColor = 0; byte _jlBorderColor = 0;
char *_jlAppName = NULL; char _jlTempString[1024]; // Used internally for pathname operations
char _jlTempString[1024];
static jlColorT _jlDefaultPalette[16]; static jlColorT _jlDefaultPalette[16];
@ -657,8 +653,9 @@ void jlVecDisplay(jlVecT *vec, jint16 ox, jint16 oy) {
case COMMAND_PLOT: case COMMAND_PLOT:
count = vec->data[p++]; count = vec->data[p++];
for (i=0; i<count; i += 2) { for (i=0; i<count; i++) {
x1 = ox + (jint16)(vec->data[p++] * VEC_SCALE_UP); x1 = ox + vec->data[p++];
x1 = x1 + (jint16)(vec->data[p++] << 8);
y1 = oy + vec->data[p++]; y1 = oy + vec->data[p++];
jlDrawPoint(x1, y1); jlDrawPoint(x1, y1);
} }
@ -666,10 +663,12 @@ void jlVecDisplay(jlVecT *vec, jint16 ox, jint16 oy) {
case COMMAND_LINE: case COMMAND_LINE:
count = vec->data[p++]; count = vec->data[p++];
x1 = ox + (jint16)(vec->data[p++] * VEC_SCALE_UP); x1 = ox + vec->data[p++];
x1 = x1 + (jint16)(vec->data[p++] << 8);
y1 = oy + vec->data[p++]; y1 = oy + vec->data[p++];
for (i=2; i<count; i += 2) { for (i=1; i<count; i++) {
x2 = ox + (jint16)(vec->data[p++] * VEC_SCALE_UP); x2 = ox + vec->data[p++];
x2 = x2 + (jint16)(vec->data[p++] << 8);
y2 = oy + vec->data[p++]; y2 = oy + vec->data[p++];
jlDrawLine(x1, y1, x2, y2); jlDrawLine(x1, y1, x2, y2);
x1 = x2; x1 = x2;
@ -679,8 +678,9 @@ void jlVecDisplay(jlVecT *vec, jint16 ox, jint16 oy) {
case COMMAND_FILL: case COMMAND_FILL:
count = vec->data[p++]; count = vec->data[p++];
for (i=0; i<count; i += 2) { for (i=0; i<count; i++) {
x1 = ox + (jint16)(vec->data[p++] * VEC_SCALE_UP); x1 = ox + vec->data[p++];
x1 = x1 + (jint16)(vec->data[p++] << 8);
y1 = oy + vec->data[p++]; y1 = oy + vec->data[p++];
jlDrawFill(x1, y1); jlDrawFill(x1, y1);
} }
@ -688,7 +688,7 @@ void jlVecDisplay(jlVecT *vec, jint16 ox, jint16 oy) {
case COMMAND_PALETTE: case COMMAND_PALETTE:
count = vec->data[p++]; count = vec->data[p++];
for (i=0; i<count; i += 4) { for (i=0; i<count; i++) {
x1 = vec->data[p++]; x1 = vec->data[p++];
y1 = vec->data[p++]; y1 = vec->data[p++];
x2 = vec->data[p++]; x2 = vec->data[p++];
@ -703,10 +703,12 @@ void jlVecDisplay(jlVecT *vec, jint16 ox, jint16 oy) {
case COMMAND_HBOX: case COMMAND_HBOX:
count = vec->data[p++]; count = vec->data[p++];
for (i=0; i<count; i += 4) { for (i=0; i<count; i++) {
x1 = ox + (jint16)(vec->data[p++] * VEC_SCALE_UP); x1 = ox + vec->data[p++];
x1 = x1 + (jint16)(vec->data[p++] << 8);
y1 = oy + vec->data[p++]; y1 = oy + vec->data[p++];
x2 = ox + (jint16)(vec->data[p++] * VEC_SCALE_UP); x2 = ox + vec->data[p++];
x2 = x2 + (jint16)(vec->data[p++] << 8);
y2 = oy + vec->data[p++]; y2 = oy + vec->data[p++];
jlDrawBox(x1, y1, x2, y2); jlDrawBox(x1, y1, x2, y2);
} }
@ -714,10 +716,12 @@ void jlVecDisplay(jlVecT *vec, jint16 ox, jint16 oy) {
case COMMAND_FBOX: case COMMAND_FBOX:
count = vec->data[p++]; count = vec->data[p++];
for (i=0; i<count; i += 4) { for (i=0; i<count; i++) {
x1 = ox + (jint16)(vec->data[p++] * VEC_SCALE_UP); x1 = ox + vec->data[p++];
x1 = x1 + (jint16)(vec->data[p++] << 8);
y1 = oy + vec->data[p++]; y1 = oy + vec->data[p++];
x2 = ox + (jint16)(vec->data[p++] * VEC_SCALE_UP); x2 = ox + vec->data[p++];
x2 = x2 + (jint16)(vec->data[p++] << 8);
y2 = oy + vec->data[p++]; y2 = oy + vec->data[p++];
jlDrawBoxFilled(x1, y1, x2, y2); jlDrawBoxFilled(x1, y1, x2, y2);
} }
@ -725,8 +729,9 @@ void jlVecDisplay(jlVecT *vec, jint16 ox, jint16 oy) {
case COMMAND_FILLTO: case COMMAND_FILLTO:
count = vec->data[p++]; count = vec->data[p++];
for (i=0; i<count; i += 2) { for (i=0; i<count; i++) {
x1 = ox + (jint16)(vec->data[p++] * VEC_SCALE_UP); x1 = ox + vec->data[p++];
x1 = x1 + (jint16)(vec->data[p++] << 8);
y1 = oy + vec->data[p++]; y1 = oy + vec->data[p++];
x2 =vec->data[p++]; x2 =vec->data[p++];
jlDrawFillTo(x1, y1, (byte)x2); jlDrawFillTo(x1, y1, (byte)x2);

View file

@ -58,10 +58,16 @@ int main(void) {
jlStaT *kanga = NULL; jlStaT *kanga = NULL;
jlStaT *font = NULL; jlStaT *font = NULL;
jlVecT *vec = NULL;
jint16 y; jint16 y;
jlUtilStartup("JoeyLib Test"); jlUtilStartup("JoeyLib Test");
jlVecLoad(vec, "nowhere");
jlVecDisplay(vec, 0, 0);
jlDisplayPresent();
jlKeyWaitForAny();
jlStaLoad(kanga, "kanga"); jlStaLoad(kanga, "kanga");
jlStaLoad(font, "font"); jlStaLoad(font, "font");