 |
PicoVGA
1.0-cmake
VGA/TV display on Raspberry Pico
|
Go to the documentation of this file.
11 #include "pico/double.h"
15 template <
typename m2type>
class cMat2D
24 inline m2type
GetX(m2type x, m2type y)
const
26 return x*m11 + y*m12 + m13;
30 inline m2type
GetY(m2type x, m2type y)
const
32 return x*m21 + y*m22 + m23;
38 m11 = 1; m12 = 0; m13 = 0;
39 m21 = 0; m22 = 1; m23 = 0;
45 m11 = m->m11; m12 = m->m12; m13 = m->m13;
46 m21 = m->m21; m22 = m->m22; m23 = m->m23;
118 inline void RotSC(m2type sina, m2type cosa)
122 m11 = t1*cosa - t2*sina;
123 m21 = t1*sina + t2*cosa;
127 m12 = t1*cosa - t2*sina;
128 m22 = t1*sina + t2*cosa;
132 m13 = t1*cosa - t2*sina;
133 m23 = t1*sina + t2*cosa;
139 this->
RotSC(sin(a), cos(a));
250 #define TOFRACT(f) ((int)((f)*FRACTMUL + (((f) < 0) ? -0.5f : 0.5f)))
281 void PrepDrawImg(
int ws,
int hs,
int x0,
int y0,
int wd,
int hd,
282 float shearx,
float sheary,
float r,
float tx,
float ty);
void ShearY(m2type dy)
Shear in Y direction.
Definition: mat2d.h:210
void ExportInt(int *mat) const
Export matrix to int array[6].
Definition: mat2d.cpp:53
void ScaleX(m2type sx)
Scale in X direction.
Definition: mat2d.h:86
void TransX(m2type tx)
Translate in X direction.
Definition: mat2d.h:58
2D Transformation Matrix
Definition: mat2d.h:262
void Rot180()
Rotate by 180 deg (=flipX and flipY) (sina=0, cosa=-1)
Definition: mat2d.h:159
void RotSC(m2type sina, m2type cosa)
Rotate, using sin and cos.
Definition: mat2d.h:118
void Unit()
Set unit matrix.
Definition: mat2d.h:36
void TransY(m2type ty)
Translate in Y direction.
Definition: mat2d.h:72
void Rot270()
Rotate by 270 deg (sina=-1, cosa=0)
Definition: mat2d.h:170
void ScaleY(m2type sy)
Scale in Y direction.
Definition: mat2d.h:102
m2type GetX(m2type x, m2type y) const
Transform X.
Definition: mat2d.h:24
void FlipY()
Flip in Y direction.
Definition: mat2d.h:226
void PrepDrawImg(int ws, int hs, int x0, int y0, int wd, int hd, float shearx, float sheary, float r, float tx, float ty)
Prepare transformation matrix (for DrawImgMat() function)
Definition: mat2d.cpp:22
void FlipX()
Flip in X direction.
Definition: mat2d.h:242
void Rot(m2type a)
Rotate, using angle.
Definition: mat2d.h:137
m2type GetY(m2type x, m2type y) const
Transform Y.
Definition: mat2d.h:30
VGA common definitions of C and ASM.
void ShearX(m2type dx)
Shear in X direction.
Definition: mat2d.h:194
Transformation matrix.
Definition: mat2d.h:15
void Copy(const cMat2D *m)
Copy matrix.
Definition: mat2d.h:43
void Rot90()
Rotate by 90 deg (sina=1, cosa=0)
Definition: mat2d.h:143