HyperRogue  11.3d
game/visualization engine based on non-Euclidean geometry
Classes | Namespaces | Macros | Typedefs | Functions | Variables
drawing.cpp File Reference

Rendering shapes (dqi_draw), queue of shapes to render (ptds), etc. More...

#include "hyper.h"

Classes

struct  hr::drawqueueitem
 
struct  hr::dqi_poly
 
struct  hr::dqi_line
 
struct  hr::dqi_string
 
struct  hr::dqi_circle
 
struct  hr::dqi_action
 
struct  hr::s2xe::point_data
 

Namespaces

 hr
 

Macros

#define POLYMAX   60000
 
#define MAX_PHASE   4
 

Typedefs

typedef array< ld, 5 > hr::s2xe::pt
 

Functions

EX unsigned char & hr::part (color_t &col, int i)
 
EX void hr::glflush ()
 
void hr::add1 (const hyperpoint &H)
 
bool hr::is_behind (const hyperpoint &H)
 
hyperpoint hr::be_just_on_view (const hyperpoint &H1, const hyperpoint &H2)
 
bool hr::nif_error_in (ld x1, ld y1, ld x2, ld y2)
 
EX bool hr::two_sided_model ()
 
EX int hr::get_side (const hyperpoint &H)
 
EX bool hr::correct_side (const hyperpoint &H)
 
void hr::fixpoint (glvertex &hscr, hyperpoint H)
 
void hr::addpoint (const hyperpoint &H)
 
void hr::coords_to_poly ()
 
void hr::addpoly (const transmatrix &V, const vector< glvertex > &tab, int ofs, int cnt)
 
void hr::aapolylineColor (SDL_Surface *s, int *x, int *y, int polyi, color_t col)
 
void hr::polylineColor (SDL_Surface *s, int *x, int *y, int polyi, color_t col)
 
EX void hr::filledPolygonColorI (SDL_Surface *s, int *px, int *py, int polyi, color_t col)
 
void hr::drawTexturedTriangle (SDL_Surface *s, int *px, int *py, glvertex *tv, color_t col)
 
EX ld hr::scale_at (const transmatrix &T)
 
EX ld hr::linewidthat (const hyperpoint &h)
 
EX void hr::set_width (ld w)
 
ld hr::cyl::period_at (ld y)
 
void hr::cyl::adjust (bool tinf)
 
ld hr::glhypot2 (glvertex a, glvertex b)
 
void hr::compute_side_by_centerin (dqi_poly *p, bool &nofill)
 
void hr::compute_side_by_area ()
 
ld hr::get_width (dqi_poly *p)
 
void hr::debug_this ()
 
pt hr::s2xe::lerp (const pt &h0, const pt &h1, ld x)
 
void hr::s2xe::add2 (pt h, int gen)
 
void hr::s2xe::addall (pt h0, pt h1, pt h2)
 
void hr::s2xe::draw_s2xe0 (dqi_poly *p)
 
bool hr::s2xe::to_right (const pt &h2, const pt &h1)
 
ld hr::s2xe::seg ()
 
void hr::s2xe::add_ortho_triangle (pt bl, pt tl, pt br, pt tr)
 
void hr::s2xe::add_ordered_triangle (array< pt, 3 > v)
 
void hr::s2xe::add_triangle_around (array< pt, 3 > v)
 
void hr::s2xe::add_s2xe_triangle (array< pt, 3 > v)
 
void hr::s2xe::draw_s2xe (dqi_poly *p)
 
EX void hr::prettypoint (const hyperpoint &h)
 
EX void hr::prettylinesub (const hyperpoint &h1, const hyperpoint &h2, int lev)
 
EX void hr::prettyline (hyperpoint h1, hyperpoint h2, color_t col, int lev, int flags, PPR prio)
 
EX void hr::prettypoly (const vector< hyperpoint > &t, color_t fillcol, color_t linecol, int lev)
 
EX void hr::queuereset (eModel m, PPR prio)
 
EX void hr::initquickqueue ()
 
EX void hr::sortquickqueue ()
 
EX void hr::quickqueue ()
 
ld hr::xintval (const hyperpoint &h)
 
color_t hr::darken_color (color_t &color, bool outline)
 
EX void hr::sort_drawqueue ()
 
EX void hr::reverse_priority (PPR p)
 
EX void hr::reverse_side_priorities ()
 
EX void hr::draw_backside ()
 
EX void hr::reverse_transparent_walls ()
 
EX void hr::draw_main ()
 
EX void hr::drawqueue ()
 
template<class T , class... U>
T & hr::queuea (PPR prio, U... u)
 
EX void hr::apply_neon (color_t &col, int &r)
 
EX color_t hr::magentize (color_t x)
 
EX color_t hr::monochromatize (color_t x)
 
EX dqi_poly & hr::queuepolyat (const transmatrix &V, const hpcshape &h, color_t col, PPR prio)
 
void hr::addfloats (vector< GLfloat > &v, hyperpoint h)
 
EX dqi_poly & hr::queuetable (const transmatrix &V, const vector< glvertex > &f, int cnt, color_t linecol, color_t fillcol, PPR prio)
 
EX dqi_poly & hr::queuepoly (const transmatrix &V, const hpcshape &h, color_t col)
 
void hr::queuepolyb (const transmatrix &V, const hpcshape &h, color_t col, int b)
 
EX void hr::curvepoint (const hyperpoint &H1)
 
EX dqi_poly & hr::queuecurve (color_t linecol, color_t fillcol, PPR prio)
 
EX dqi_action & hr::queueaction (PPR prio, const reaction_t &action)
 
EX dqi_line & hr::queueline (const hyperpoint &H1, const hyperpoint &H2, color_t col, int prf IS(0), PPR prio IS(PPR::LINE))
 
EX void hr::queuestr (int x, int y, int shift, int size, string str, color_t col, int frame IS(0), int align IS(8))
 
EX void hr::queuecircle (int x, int y, int size, color_t color, PPR prio IS(PPR::CIRCLE), color_t fillcolor IS(0))
 
EX void hr::getcoord0 (const hyperpoint &h, int &xc, int &yc, int &sc)
 
EX ld hr::scale_in_pixels (const transmatrix &V)
 
EX bool hr::getcoord0_checked (const hyperpoint &h, int &xc, int &yc, int &zc)
 
EX void hr::queuestr (const hyperpoint &h, int size, const string &chr, color_t col, int frame IS(0))
 
EX void hr::queuestr (const transmatrix &V, double size, const string &chr, color_t col, int frame IS(0), int align IS(8))
 
EX void hr::queuestrn (const transmatrix &V, double size, const string &chr, color_t col, int frame IS(0), int align IS(8))
 
EX void hr::queuecircle (const transmatrix &V, double size, color_t col)
 

Variables

bool hr::fatborder
 
EX color_t hr::poly_outline
 
EX vector< unique_ptr< drawqueueitem > > hr::ptds
 
EX color_t hr::text_color
 
EX int hr::text_shift
 
EX GLuint hr::text_texture
 
EX int hr::texts_merged
 
EX int hr::shapes_merged
 
SDL_Surface * hr::aux
 
EX vector< glvertex > hr::glcoords
 
EX int hr::spherespecial
 
EX int hr::spherephase
 
int hr::polyi
 
EX int hr::polyx [POLYMAX]
 
EX int hr::polyxr [POLYMAX]
 
EX int hr::polyy [POLYMAX]
 
int hr::poly_flags
 
bool hr::last_infront
 
bool hr::knowgood
 
hyperpoint hr::goodpoint
 
vector< pair< int, hyperpoint > > hr::tofix
 
hyperpoint hr::Hlast
 
EX int hr::global_projection
 
int hr::min_slr
 
int hr::max_slr = 0
 
int hr::cyl::loop_min = 0
 
int hr::cyl::loop_max = 0
 
vector< ld > hr::cyl::periods
 
bool hr::in_twopoint = false
 
glvertex hr::junk = glhr::makevertex(0,0,1)
 
int hr::s2xe::maxgen
 
bool hr::s2xe::with_zero
 
ld hr::s2xe::minz
 
ld hr::s2xe::maxy
 
ld hr::s2xe::miny
 
basic_textureinfo hr::s2xe::stinf
 
EX int hr::s2xe::qrings = 32
 
vector< glvertex > hr::prettylinepoints
 
vector< glvertex > hr::curvedata
 
int hr::curvestart = 0
 
bool hr::keep_curvedata = false
 
EX ld hr::backbrightness = .25
 
purehookset hr::hook_drawqueue
 
constexpr int hr::PMAX = int(PPR::MAX)
 
int hr::qp [PMAX]
 
int hr::qp0 [PMAX]
 
EX int hr::neon_mode = 0
 

Detailed Description

Rendering shapes (dqi_draw), queue of shapes to render (ptds), etc.