TempleOSCDV4.11.ISO

This commit is contained in:
Terry A. Davis authored and minexew committed 2018-09-08 21:47:50 +02:00
1 parent 9206246147
commit 93ca216483
662 files changed
+6431 -7369

No files matched your search

+2 -2
View File
@@ -148,8 +148,8 @@ public class CSpritePtMeshU8s : CSpriteBase
#help_index "Graphics/Sprite;Sprites;Sprites/Binary"
//See $LK,"Sprites",A="HI:Sprites"$. See $LK,"::/Adam/Gr/GrSpritePlot.CPP",A="FL:::/Adam/Gr/GrSpritePlot.CPP,1"$ and
//$LK,"::/Demo/Graphics/SpriteRaw.CPP"$ for how CSprite are stored.
//See $LK,"Sprites",A="HI:Sprites"$. See $LK,"::/Adam/Gr/GrSpritePlot.HC",A="FL:::/Adam/Gr/GrSpritePlot.HC,1"$ and
//$LK,"::/Demo/Graphics/SpriteRaw.HC"$ for how CSprite are stored.
public class CSprite
{
CSprite *next,*last;
File renamed without changes.
+4 -2
View File
@@ -1,5 +1,6 @@
#help_index "Graphics"
Option(OPTf_WARN_HEADER_MISMATCH,OFF);
public Bool GrPlot0(CDC *dc=gr.dc,I64 x,I64 y)
{//2D. No clipping or transformation or pen width.
U8 *dst;
@@ -60,6 +61,7 @@ public Bool GrPlot0(CDC *dc=gr.dc,I64 x,I64 y)
}
return TRUE;
}
Option(OPTf_WARN_HEADER_MISMATCH,ON);
public I64 GrPeek0(CDC *dc=gr.dc,I64 x,I64 y)
{//2D. No clipping or transformation.
@@ -1641,7 +1643,7 @@ gr_done:
public I64 GrHLine(CDC *dc=gr.dc,I64 x1,I64 x2,I64 y,I64 z1=0,I64 z2=0)
{//3D. No transformation or pen width.
//Returns cnt of pixs changed
//Uses $LK,"fixed-point",A="FI:::/Demo/Lectures/FixedPoint.CPP"$.
//Uses $LK,"fixed-point",A="FI:::/Demo/Lectures/FixedPoint.HC"$.
I64 dist,dx,dz,z,res=0,i,j,d;
U8 *dst;
CColorROPU32 c,c2,color=dc->color,bkcolor=dc->bkcolor,dither_colors;
@@ -1812,7 +1814,7 @@ gr_done:
public I64 GrVLine(CDC *dc=gr.dc,I64 x,I64 y1,I64 y2,I64 z1=0,I64 z2=0)
{//3D. No transformation or pen width.
//Returns cnt of pixs changed
//Uses $LK,"fixed-point",A="FI:::/Demo/Lectures/FixedPoint.CPP"$.
//Uses $LK,"fixed-point",A="FI:::/Demo/Lectures/FixedPoint.HC"$.
I64 dist,dy,dz,z,res=0,i,j,d;
U8 *dst;
CColorROPU32 c,c2,color=dc->color,bkcolor=dc->bkcolor,dither_colors;
@@ -296,7 +296,7 @@ mesh_done:
#help_index "Graphics/Misc;Input Pointer/Displayed Image"
public U0 DrawStdInputPtr(CDC *dc,I64 x,I64 y)
{//This is a callback. See $LK,"::/Demo/Graphics/Grid.CPP"$.
{//This is a callback. See $LK,"::/Demo/Graphics/Grid.HC"$.
//Called by $LK,"DrawInputPtr",A="MN:DrawInputPtr"$() which is
//called by $LK,"WinFinalUpdate",A="MN:WinFinalUpdate"$().
dc->pen_width=1;
@@ -307,7 +307,7 @@ public U0 DrawStdInputPtr(CDC *dc,I64 x,I64 y)
gr.fp_draw_input_ptr=&DrawStdInputPtr;
public U0 DrawWaitInputPtr(CDC *dc,I64 x,I64 y)
{//This is a callback. See $LK,"::/Demo/Graphics/Grid.CPP"$.
{//This is a callback. See $LK,"::/Demo/Graphics/Grid.HC"$.
I64 old_pen_width=dc->pen_width;
CColorROPU32 old_color=dc->color;
dc->pen_width=3;
+6 -6
View File
@@ -4,7 +4,7 @@
#define GR_SCALE (1<<32)
public U0 Mat4x4MulXYZ(I64 *r,I64 *_x,I64 *_y,I64 *_z)
{//Rotate 3D point using 4x4 matrix. Uses $LK,"fixed-point",A="FI:::/Demo/Lectures/FixedPoint.CPP"$.
{//Rotate 3D point using 4x4 matrix. Uses $LK,"fixed-point",A="FI:::/Demo/Lectures/FixedPoint.HC"$.
I64 x1,y1,z1,xx=*_x,yy=*_y,zz=*_z;
x1=(r[0*4+0]*xx+r[0*4+1]*yy+r[0*4+2]*zz+r[0*4+3])>>32;
y1=(r[1*4+0]*xx+r[1*4+1]*yy+r[1*4+2]*zz+r[1*4+3])>>32;
@@ -14,7 +14,7 @@ public U0 Mat4x4MulXYZ(I64 *r,I64 *_x,I64 *_y,I64 *_z)
public U0 DCTransform(CDC *dc,I64 *_x,I64 *_y,I64 *_z)
{//This is the dft dc->transform() callback.
//Uses $LK,"fixed-point",A="FI:::/Demo/Lectures/FixedPoint.CPP"$.
//Uses $LK,"fixed-point",A="FI:::/Demo/Lectures/FixedPoint.HC"$.
Mat4x4MulXYZ(dc->r,_x,_y,_z);
*_x+=dc->x;
*_y+=dc->y;
@@ -22,7 +22,7 @@ public U0 DCTransform(CDC *dc,I64 *_x,I64 *_y,I64 *_z)
}
public I64 *Mat4x4IdentEqu(I64 *r)
{//Set matrix to identity. Uses $LK,"fixed-point",A="FI:::/Demo/Lectures/FixedPoint.CPP"$.
{//Set matrix to identity. Uses $LK,"fixed-point",A="FI:::/Demo/Lectures/FixedPoint.HC"$.
MemSet(r,0,sizeof(I64)*16);
r[0*4+0].i32[1]=1;
r[1*4+1].i32[1]=1;
@@ -32,7 +32,7 @@ public I64 *Mat4x4IdentEqu(I64 *r)
}
public I64 *Mat4x4IdentNew(CTask *mem_task=NULL)
{//MAlloc an identity matrix. Uses $LK,"fixed-point",A="FI:::/Demo/Lectures/FixedPoint.CPP"$.
{//MAlloc an identity matrix. Uses $LK,"fixed-point",A="FI:::/Demo/Lectures/FixedPoint.HC"$.
return Mat4x4IdentEqu(MAlloc(sizeof(I64)*16,mem_task));
}
@@ -45,7 +45,7 @@ public I64 Mat4x4NormSqr65536(I64 *r)
}
public U0 DCMat4x4Set(CDC *dc=NULL,I64 *r)
{//Set device context's rot matrix. Will be $LK,"Free",A="MN:Free"$d() in $LK,"DCDel",A="MN:DCDel"$().Uses $LK,"fixed-point",A="FI:::/Demo/Lectures/FixedPoint.CPP"$.
{//Set device context's rot matrix. Will be $LK,"Free",A="MN:Free"$d() in $LK,"DCDel",A="MN:DCDel"$().Uses $LK,"fixed-point",A="FI:::/Demo/Lectures/FixedPoint.HC"$.
//The main purpose is to set matrix norm for pen width scaling.
//NULL as dc means gr.dc
if (!dc) dc=gr.dc;
@@ -155,7 +155,7 @@ public U0 DCRst(CDC *dc)
public U0 DCExtentsInit(CDC *dc=NULL)
{//Init markers for extent of next newly drawn graphics.
//NULL means gr.dc
//See $LK,"::/Demo/Graphics/Extents.CPP"$
//See $LK,"::/Demo/Graphics/Extents.HC"$
//You should clear the record flag yourself
if (!dc) dc=gr.dc;
dc->flags|=DCF_RECORD_EXTENTS;
File renamed without changes.
File renamed without changes.
+2 -2
View File
@@ -23,7 +23,7 @@ public class CGrGlbls
U0 (*fp_wall_paper)(CTask *task);
U0 (*fp_draw_input_ptr)(CDC *dc,I64 x,I64 y);
U0 (*fp_draw_grab_input_ptr)(CDC *dc,I64 x,I64 y,Bool closed);
U8 *empty_sprite; //Gets assigned $LK,"gr.empty_sprite",A="FF:::/Adam/AInputPointer.CPP,empty_sprite"$
U8 *empty_sprite; //Gets assigned $LK,"gr.empty_sprite",A="FF:::/Adam/AInputPointer.HC,empty_sprite"$
#define GR_NUM_PEN_BRUSHES 64
CDC *pen_brushes[GR_NUM_PEN_BRUSHES],
@@ -42,7 +42,7 @@ public class CGrGlbls
hide_row,hide_col;
} gr;
//See $LK,"RLf_VGA",A="FF:::/Kernel/KStart16.CPP,RLf_VGA"$
//See $LK,"RLf_VGA",A="FF:::/Kernel/KStart16.HC,RLf_VGA"$
//See $LK,"SysGrInit",A="MN:SysGrInit"$()
//Allows consts to be used instead of vars.
HashPublic("GR_WIDTH",HTT_DEFINE_STR);;
File renamed without changes.
File renamed without changes.
+9 -9
View File
@@ -8,7 +8,7 @@ public I64 gr_x_offsets[8]={-1, 0, 1,-1,1,-1,0,1},
public Bool Line(U8 *aux_data,I64 x1,I64 y1,I64 z1,I64 x2,I64 y2,I64 z2,
Bool (*fp_plot)(U8 *aux,I64 x,I64 y,I64 z),I64 step=1,I64 start=0)
{//Step through line segment calling callback.
//Uses $LK,"fixed-point",A="FI:::/Demo/Lectures/FixedPoint.CPP"$.
//Uses $LK,"fixed-point",A="FI:::/Demo/Lectures/FixedPoint.HC"$.
I64 i,j,d,dx=x2-x1,dy=y2-y1,dz=z2-z1,_x,_y,_z,
adx=AbsI64(dx),ady=AbsI64(dy),adz=AbsI64(dz);
Bool first=TRUE;
@@ -78,7 +78,7 @@ public Bool Line(U8 *aux_data,I64 x1,I64 y1,I64 z1,I64 x2,I64 y2,I64 z2,
#help_index "Graphics/Math/3D Transformation"
public I64 *Mat4x4MulMat4x4Equ(I64 *dst,I64 *m1,I64 *m2)
{//Multiply 4x4 matrices and store in dst. Uses $LK,"fixed-point",A="FI:::/Demo/Lectures/FixedPoint.CPP"$.
{//Multiply 4x4 matrices and store in dst. Uses $LK,"fixed-point",A="FI:::/Demo/Lectures/FixedPoint.HC"$.
//Conceptually, the transform m1 is applied after m2
I64 i,j,k;
F64 sum;
@@ -94,7 +94,7 @@ public I64 *Mat4x4MulMat4x4Equ(I64 *dst,I64 *m1,I64 *m2)
}
public I64 *Mat4x4MulMat4x4New(I64 *m1,I64 *m2,CTask *mem_task=NULL)
{//Multiply 4x4 matrices. Return MAlloced matrix. Uses $LK,"fixed-point",A="FI:::/Demo/Lectures/FixedPoint.CPP"$.
{//Multiply 4x4 matrices. Return MAlloced matrix. Uses $LK,"fixed-point",A="FI:::/Demo/Lectures/FixedPoint.HC"$.
//Conceptually, the transform m1 is applied after m2
return Mat4x4MulMat4x4Equ(MAlloc(sizeof(I64)*16,mem_task),m1,m2);
}
@@ -111,7 +111,7 @@ public I64 *Mat4x4New(I64 *src,CTask *mem_task=NULL)
}
public I64 *Mat4x4RotX(I64 *m1,F64 è)
{//Rot matrix about X axis. Uses $LK,"fixed-point",A="FI:::/Demo/Lectures/FixedPoint.CPP"$.
{//Rot matrix about X axis. Uses $LK,"fixed-point",A="FI:::/Demo/Lectures/FixedPoint.HC"$.
F64 my_cos=Cos(è)*GR_SCALE,my_sin=Sin(è)*GR_SCALE;
I64 r[16],r2[16];
MemSet(r,0,sizeof(r));
@@ -125,7 +125,7 @@ public I64 *Mat4x4RotX(I64 *m1,F64
}
public I64 *Mat4x4RotY(I64 *m1,F64 ê)
{//Rot matrix about Y axis. Uses $LK,"fixed-point",A="FI:::/Demo/Lectures/FixedPoint.CPP"$.
{//Rot matrix about Y axis. Uses $LK,"fixed-point",A="FI:::/Demo/Lectures/FixedPoint.HC"$.
F64 my_cos=Cos(ê)*GR_SCALE,my_sin=Sin(ê)*GR_SCALE;
I64 r[16],r2[16];
MemSet(r,0,sizeof(r));
@@ -139,7 +139,7 @@ public I64 *Mat4x4RotY(I64 *m1,F64
}
public I64 *Mat4x4RotZ(I64 *m1,F64 é)
{//Rot matrix about Z axis. Uses $LK,"fixed-point",A="FI:::/Demo/Lectures/FixedPoint.CPP"$.
{//Rot matrix about Z axis. Uses $LK,"fixed-point",A="FI:::/Demo/Lectures/FixedPoint.HC"$.
F64 my_cos=Cos(é)*GR_SCALE,my_sin=Sin(é)*GR_SCALE;
I64 r[16],r2[16];
MemSet(r,0,sizeof(r));
@@ -174,7 +174,7 @@ public U0 DCPenWidthScale(CDC *dc=gr.dc)
}
public I64 *Mat4x4TranslationEqu(I64 *r,I64 x,I64 y,I64 z)
{//Set translation values in 4x4 matrix. Uses $LK,"fixed-point",A="FI:::/Demo/Lectures/FixedPoint.CPP"$.
{//Set translation values in 4x4 matrix. Uses $LK,"fixed-point",A="FI:::/Demo/Lectures/FixedPoint.HC"$.
r[0*4+3]=x<<32;
r[1*4+3]=y<<32;
r[2*4+3]=z<<32;
@@ -183,7 +183,7 @@ public I64 *Mat4x4TranslationEqu(I64 *r,I64 x,I64 y,I64 z)
}
public I64 *Mat4x4TranslationAdd(I64 *r,I64 x,I64 y,I64 z)
{//Add translation to 4x4 matrix. Uses $LK,"fixed-point",A="FI:::/Demo/Lectures/FixedPoint.CPP"$.
{//Add translation to 4x4 matrix. Uses $LK,"fixed-point",A="FI:::/Demo/Lectures/FixedPoint.HC"$.
r[0*4+3]+=x<<32;
r[1*4+3]+=y<<32;
r[2*4+3]+=z<<32;
@@ -250,7 +250,7 @@ public Bool DCSymmetry3Set(CDC *dc=gr.dc,I64 x1,I64 y1,I64 z1,
}
public U0 DCReflect(CDC *dc,I64 *_x,I64 *_y,I64 *_z)
{//Reflect 3D point about device context's symmetry. Uses $LK,"fixed-point",A="FI:::/Demo/Lectures/FixedPoint.CPP"$.
{//Reflect 3D point about device context's symmetry. Uses $LK,"fixed-point",A="FI:::/Demo/Lectures/FixedPoint.HC"$.
I64 x=*_x<<32,y=*_y<<32,z=*_z<<32,
xx=*_x-dc->sym.sx,yy=*_y-dc->sym.sy,zz=*_z-dc->sym.sz,
d=(xx*dc->sym.snx+yy*dc->sym.sny+zz*dc->sym.snz)>>16,
File renamed without changes.
@@ -650,7 +650,7 @@ public Bool Gr3BSpline(CDC *dc=gr.dc,CD3I32 *ctrl,I64 cnt,Bool closed=FALSE)
I64 GrLineFat3(CDC *dc=gr.dc,I64 x1,I64 y1,I64 z1,I64 x2,I64 y2,I64 z2,
I64 width,I64 start=0)
{//Step through line segment calling callback.
//Uses $LK,"fixed-point",A="FI:::/Demo/Lectures/FixedPoint.CPP"$.
//Uses $LK,"fixed-point",A="FI:::/Demo/Lectures/FixedPoint.HC"$.
I64 res=0,i,j,d,dx=x2-x1,dy=y2-y1,dz=z2-z1,_x,_y,_z,d_lo,d_hi,
adx=AbsI64(dx),ady=AbsI64(dy),adz=AbsI64(dz);
if (width>0) {
@@ -998,6 +998,7 @@ gr_done:
#help_index "Graphics;Graphics/Device Contexts"
Option(OPTf_WARN_HEADER_MISMATCH,OFF);
public I64 GrBlot3(CDC *dc=gr.dc,I64 x1,I64 y1,I64 z1,CDC *img)
{//3D. Clipping and transformation.
CColorROPU32 old_color=dc->color;
@@ -1211,6 +1212,7 @@ gr_done:
dc->brush=old_brush;
return res;
}
Option(OPTf_WARN_HEADER_MISMATCH,ON);
#help_index "Graphics"
+1 -1
View File
@@ -396,7 +396,7 @@ U0 GrUpdateVGAGraphics()
}
U0 GrUpdateScreen()
{//Called by the Window Manager $LK,"HERE",A="FF:::/Adam/WinB.CPP,GrUpdateScreen"$, 30 times a second.
{//Called by the Window Manager $LK,"HERE",A="FF:::/Adam/WinB.HC,GrUpdateScreen"$, 30 times a second.
CDC *dc;
if (!Bt(&sys_run_level,RLf_VGA)) //if text mode
GrUpdateTasks;
@@ -441,7 +441,7 @@ public U8 *SpriteInterpolate(F64 t,U8 *elems0,U8 *elems1)
#help_index "Graphics/Sprite;DolDoc/Output;StdOut/DolDoc"
public CDocEntry *DocSprite(CDoc *doc=NULL,U8 *elems,U8 *fmt=NULL)
{//Put a sprite into a document. You can, optionally, supply a fmt string
//for $LK,"DolDoc",A="FI:::/Doc/DolDocOverview.TXT"$ cmd with a %d for the bin_num.
//for $LK,"DolDoc",A="FI:::/Doc/DolDocOverview.DD"$ cmd with a %d for the bin_num.
I64 size;
U8 *st;
Bool unlock;
File renamed without changes.
+1 -1
View File
@@ -1,7 +1,7 @@
Cd(__DIR__);;
#include "GrInitA"
#include "Gr.HPP"
#include "Gr.HH"
#include "GrExt"
#include "GrGlbls"
#include "GrTextBase"
@@ -55,7 +55,7 @@ I64 PopUpSpriteBitMap(CColorROPU32 color,I64 width)
st2="";
}
DocPrint(doc,"$$PURPLE$$$$TX+CX,\"Sprite BitMap Menu\"$$\n"
"$$LK+PU+CX,\"Click for Help\",A=\"FI:::/Doc/SpriteBitMap.TXT.Z\"$$\n"
"$$LK+PU+CX,\"Click for Help\",A=\"FI:::/Doc/SpriteBitMap.DD.Z\"$$\n"
"\n$$LTBLUE$$$$MU-UL,\"Color %s\",LE=GBM_COLOR$$\n"
"$$MU-UL,\"Dither Color %s\",LE=GBM_DITHER_COLOR$$\n"
"$$MU-UL,\"Width %d\",LE=GBM_WIDTH$$\n"
File renamed without changes.
+3 -3
View File
@@ -616,7 +616,7 @@ U0 SpriteSideBarPickNew(CDoc *doc,CSprite *head,I64 old_num)
U8 *st;
DocPrint(doc,"$$PURPLE$$$$TX+CX,\"Sprite SideBar\"$$\n"
"$$LK+PU+CX,\"Click for Help\","
"A=\"FI:::/Doc/SpriteSideBar.TXT.Z\"$$\n\n");
"A=\"FI:::/Doc/SpriteSideBar.DD.Z\"$$\n\n");
tempg=head->next;
while (tempg!=head) {
st=SpriteElem2Summary(tempg);
@@ -686,7 +686,7 @@ Bool SpriteEdText(CSprite **_head,I64 *_cur_elem_num)
StrPrint(doc->filename.name,"AI:0x%X",doc);
DocPrint(doc,"//$$PURPLE$$$$TX+CX,\"Sprite Edit as Text\"$$$$FG$$\n"
"//$$LK+PU+CX,\"Click for Help\","
"A=\"FI:::/Doc/SpriteEdText.TXT.Z\"$$\n\n");
"A=\"FI:::/Doc/SpriteEdText.DD.Z\"$$\n\n");
Sprite2Code(doc,elems);
Free(elems);
while (TRUE) {
@@ -745,7 +745,7 @@ I64 PopUpSpriteEd(CSprite **_head,I64 *_cur_elem_num)
I64 i;
CDoc *doc=DocNew;
DocPrint(doc,"$$PURPLE$$$$TX+CX,\"Sprite Edit Menu\"$$\n"
"$$LK+PU+CX,\"Click for Help\",A=\"FI:::/Doc/SpriteEd.TXT.Z\"$$\n\n"
"$$LK+PU+CX,\"Click for Help\",A=\"FI:::/Doc/SpriteEd.DD.Z\"$$\n\n"
"$$LTBLUE$$$$MU-UL,\"Select/Unselect All\",LE=GED_SEL_UNSEL_ALL$$\n"
"$$MU-UL,\"Select Elems\",LE=GED_SEL$$\n"
"$$MU-UL,\"Unsel Elems\",LE=GED_UNSEL$$\n\n"
@@ -16,7 +16,7 @@ I64 PopUpSpriteMain(CSprite **_head,I64 *_cur_elem_num,
U8 *st;
doc_de=DocPrint(doc,"$$PURPLE$$$$TX+CX,\"Sprite Main Menu\"$$\n"
"$$LK+PU+CX,\"Click for Help\",A=\"FI:::/Doc/SpriteMain.TXT.Z\"$$\n"
"$$LK+PU+CX,\"Click for Help\",A=\"FI:::/Doc/SpriteMain.DD.Z\"$$\n"
"\n$$LTBLUE$$$$DA+M,A=\"Tag Text:%%s\"$$\n\n");
doc_de->data=StrNew(_doc_e->tag,doc->mem_task);
DocDataFmt(doc,doc_de);
@@ -103,7 +103,7 @@ Bool PopUpExtents(I64 *_x1,I64 *_x2,I64 *_y1,I64 *_y2)
U0 SpriteScreenInit(CDC *dc,I64,I64)
{
//Uses $LK,"fixed-point",A="FI:::/Demo/Lectures/FixedPoint.CPP"$.
//Uses $LK,"fixed-point",A="FI:::/Demo/Lectures/FixedPoint.HC"$.
I64 xx,yy,old_pen_width=dc->pen_width;
CColorROPU32 old_color=dc->color;
WinMgrSync;
@@ -914,7 +914,7 @@ I64 SpriteMainEd(CDoc *doc)
case SPT_SHIFTABLE_MESH:
doc_ce->de_flags|=DOCEF_DONT_DRAW;
if (PopUpNoYes("Study the $$LK,\"X-Caliber\","
"A=\"FF:::/PersonalMenu.TXT.Z,X-Caliber\"$$ icon.\n\n"
"A=\"FF:::/PersonalMenu.DD.Z,X-Caliber\"$$ icon.\n\n"
"It has black rectangle background with stars. The\n"
"mesh is in front and rotates. To keep the background\n"
"rectangle from rotating, "
@@ -967,7 +967,7 @@ If head points to a mesh, it will load it.
Returns a newly malloced mesh or NULL.
See $LK,"::/Demo/Graphics/SpritePlot3D.CPP"$.
See $LK,"::/Demo/Graphics/SpritePlot3D.HC"$.
$WW,0$*/
CCtrl *c=CtrlFindUnique(Fs,CTRLT_VIEWING_ANGLES);
CViewAngles *s,*old_s;
@@ -115,7 +115,7 @@ public U8 *DC2Sprite(CDC *tempb)
}
public U8 *SpriteElem2Summary(CSprite *tempg)
{//Study $LK,"::/Demo/Graphics/SpriteText.CPP"$.
{//Study $LK,"::/Demo/Graphics/SpriteText.HC"$.
U8 buf[STR_LEN],buf2[STR_LEN];
I32 *ptr;
StrPrint(buf,"%Z",tempg->type,"ST_SPRITE_ELEM_TYPES");