mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-05-28 00:02:28 +00:00
Initial import
This commit is contained in:
commit
c91b3c5006
14915 changed files with 590219 additions and 0 deletions
58
tool/viz/lib/graphic.h
Normal file
58
tool/viz/lib/graphic.h
Normal file
|
@ -0,0 +1,58 @@
|
|||
#ifndef COSMOPOLITAN_TOOL_VIZ_LIB_GRAPHIC_H_
|
||||
#define COSMOPOLITAN_TOOL_VIZ_LIB_GRAPHIC_H_
|
||||
#include "dsp/tty/quant.h"
|
||||
#include "libc/runtime/buffer.h"
|
||||
#include "libc/runtime/gc.h"
|
||||
#if !(__ASSEMBLER__ + __LINKER__ + 0)
|
||||
COSMOPOLITAN_C_START_
|
||||
|
||||
struct Graphic {
|
||||
union {
|
||||
struct GuardedBuffer b;
|
||||
char *bytes;
|
||||
float (*lum)[2][8];
|
||||
float (*rgba)[2][2];
|
||||
};
|
||||
unsigned yn, xn;
|
||||
unsigned ys, xs;
|
||||
unsigned bs, es;
|
||||
};
|
||||
|
||||
void dither(long yw, long xw, unsigned char[3][yw][xw], long, long);
|
||||
struct Graphic *resizegraphic(struct Graphic *, size_t, size_t);
|
||||
void getxtermcodes(struct TtyRgb *, const struct Graphic *);
|
||||
void ycbcr2lum(struct Graphic *, uint8_t *, uint8_t *, uint8_t *, size_t,
|
||||
size_t, size_t);
|
||||
|
||||
long sharpen(long cn, long yw, long xw, unsigned char[cn][yw][xw], long, long);
|
||||
long unsharp(long cn, long yw, long xw, unsigned char[cn][yw][xw], long, long);
|
||||
long gaussian(long yn, long xn, unsigned char[3][yn][xn]);
|
||||
void sobel(struct Graphic *);
|
||||
extern void (*ycbcr2rgb)(struct Graphic *, uint8_t *, uint8_t *, uint8_t *,
|
||||
size_t, size_t, size_t);
|
||||
|
||||
void emboss(struct Graphic *);
|
||||
void boxblur(struct Graphic *);
|
||||
double perlin3(double, double, double);
|
||||
|
||||
void stdgamma(unsigned n, __m128 rgba[n]);
|
||||
void lingamma(unsigned n, __m128 rgba[n]);
|
||||
|
||||
void OldBilinearScale(size_t dyw, size_t dxw, __v4sf dst[dyw][dxw], size_t syw,
|
||||
size_t sxw, __v4sf src[syw][sxw], size_t dyn, size_t dxn,
|
||||
size_t syn, size_t sxn);
|
||||
|
||||
int MagicScale(unsigned dyn, unsigned dxn, __v4sf dst[dyn][dxn], unsigned syn,
|
||||
unsigned sxn, __v4sf src[syn][sxn]);
|
||||
|
||||
void interlace(size_t dyn, size_t dxn, float dst[dyn][dxn][4], size_t syn,
|
||||
size_t sxn, size_t ssw, unsigned char reds[syn][ssw],
|
||||
unsigned char greens[syn][ssw], unsigned char blues[syn][ssw]);
|
||||
|
||||
void WriteToFrameBuffer(size_t dyn, size_t dxn, unsigned char dst[dyn][dxn][4],
|
||||
size_t syn, size_t sxn, float src[syn][sxn][4],
|
||||
size_t yn, size_t xn);
|
||||
|
||||
COSMOPOLITAN_C_END_
|
||||
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
|
||||
#endif /* COSMOPOLITAN_TOOL_VIZ_LIB_GRAPHIC_H_ */
|
Loading…
Add table
Add a link
Reference in a new issue