Tramway SDK
Classes | Namespaces | Functions | Variables
software.cpp File Reference
#include <render/software/software.h>
#include <render/api.h>
#include <templates/octree.h>
#include <cstdlib>
#include <cstring>

Classes

struct  tram::Render::API::LayerParameters
 
struct  tram::Render::API::Scanline
 
struct  tram::Render::API::ScanlineBuffer
 
struct  tram::Render::API::Point2D
 
struct  tram::Render::API::StaticVertex
 
struct  tram::Render::API::DynamicVertex
 
struct  tram::Render::API::ColorVertex
 
struct  tram::Render::API::ClipPoint
 
struct  tram::Render::API::ClipTriangle
 

Namespaces

namespace  tram
 
namespace  tram::Render
 
namespace  tram::Render::API
 

Functions

void tram::Render::API::SetLightingParameters (vec3 sun_direction, vec3 sun_color, vec3 ambient_color, layer_t layer)
 
void tram::Render::API::SetScreenSize (float width, float height)
 
void tram::Render::API::SetScreenClear (vec3 clear_color, bool clear)
 
uint16_t tram::Render::API::IntColor (vec3 color)
 
vec3 tram::Render::API::RGBColor (uint16_t color)
 
void tram::Render::API::BlitDot (uint32_t x, uint32_t y, uint16_t color)
 
void tram::Render::API::BlitLineOctant0 (uint32_t x0, uint32_t y0, uint32_t delta_x, uint32_t delta_y, int32_t direction, uint32_t color)
 
void tram::Render::API::BlitLineOctant1 (uint32_t x0, uint32_t y0, uint32_t delta_x, uint32_t delta_y, int32_t direction, uint32_t color)
 
void tram::Render::API::BlitLine (int32_t x0, int32_t y0, int32_t x1, int32_t y1, uint16_t color)
 
template<bool set_span_first>
void tram::Render::API::MakeSpans (int32_t x0, int32_t y0, int32_t x1, int32_t y1, int32_t p0, int32_t p1, int32_t skip_first, Scanline **scanline_array)
 
void tram::Render::API::ScanlineConvertTriangle (ScanlineBuffer *scanlines, Point2D *vertices)
 
void tram::Render::API::RasterizeTriangle (ScanlineBuffer *scanlines, Point2D *vertices)
 
void tram::Render::API::RasterizeTriangleLightmapped (ScanlineBuffer *scanlines, Point2D *vertices, uint16_t color, vec2 *texture_uvs, vec2 *lightmap_uvs, SWTexture *texture, SWTexture *lightmap)
 
void tram::Render::API::RasterizeTriangleShadedTextured (ScanlineBuffer *scanlines, Point2D *vertices, vec3 *colors, vec3 *speculars, vec2 *texture_uvs, SWTexture *texture)
 
void tram::Render::API::ClipLineInClipSpace (vec4 &point0, vec4 &point1)
 
vec4 tram::Render::API::ClipSinglePointLine (vec4 *outside, vec4 *inside)
 
vec4 tram::Render::API::ClipSinglePointLineLeftPlane (vec4 outside, vec4 inside)
 
vec4 tram::Render::API::ClipSinglePointLineRightPlane (vec4 outside, vec4 inside)
 
vec4 tram::Render::API::ClipSinglePointLineBottomPlane (vec4 outside, vec4 inside)
 
vec4 tram::Render::API::ClipSinglePointLineTopPlane (vec4 outside, vec4 inside)
 
vec4 tram::Render::API::ClipSinglePointLineNearPlane (vec4 outside, vec4 inside)
 
vec4 tram::Render::API::ClipSinglePointLineFarPlane (vec4 outside, vec4 inside)
 
ClipPoint tram::Render::API::ClipSingleClipPointLineLeftPlane (ClipPoint outside, ClipPoint inside)
 
ClipPoint tram::Render::API::ClipSingleClipPointLineRightPlane (ClipPoint outside, ClipPoint inside)
 
ClipPoint tram::Render::API::ClipSingleClipPointLineBottomPlane (ClipPoint outside, ClipPoint inside)
 
ClipPoint tram::Render::API::ClipSingleClipPointLineTopPlane (ClipPoint outside, ClipPoint inside)
 
ClipPoint tram::Render::API::ClipSingleClipPointLineNearPlane (ClipPoint outside, ClipPoint inside)
 
ClipPoint tram::Render::API::ClipSingleClipPointLineFarPlane (ClipPoint outside, ClipPoint inside)
 
void tram::Render::API::PerspectiveDivision (vec4 &p)
 
void tram::Render::API::PerspectiveDivision (vec4 &p0, vec4 &p1)
 
std::pair< int32_t, int32_t > tram::Render::API::ClipSpaceToScreenSpace (const vec4 p)
 
bool tram::Render::API::PointVisible (vec4 p)
 
bool tram::Render::API::PointOutsideLeftPlane (vec4 p)
 
bool tram::Render::API::PointOutsideRightPlane (vec4 p)
 
bool tram::Render::API::PointOutsideBottomPlane (vec4 p)
 
bool tram::Render::API::PointOutsideTopPlane (vec4 p)
 
bool tram::Render::API::PointOutsideNearPlane (vec4 p)
 
bool tram::Render::API::PointOutsideFarPlane (vec4 p)
 
bool tram::Render::API::LineVisible (vec4 p0, vec4 p1)
 
bool tram::Render::API::TriangleVisible (vec4 p0, vec4 p1, vec4 p2)
 
void tram::Render::API::ClipRenderLine (vec4 p0, vec4 p1, uint16_t color)
 
size_t tram::Render::API::ClipTriangleList (ClipTriangle *triangles)
 
void tram::Render::API::RenderFrame ()
 
drawlistentry_t tram::Render::API::InsertDrawListEntry ()
 
void tram::Render::API::RemoveDrawListEntry (drawlistentry_t entry)
 
uint32_t tram::Render::API::GetFlags (drawlistentry_t entry)
 
void tram::Render::API::SetFlags (drawlistentry_t entry, uint32_t flags)
 
void tram::Render::API::SetLayer (drawlistentry_t entry, layer_t layer)
 
void tram::Render::API::SetPose (drawlistentry_t entry, Pose *pose)
 
void tram::Render::API::SetLightmap (drawlistentry_t entry, texturehandle_t lightmap)
 
void tram::Render::API::SetDrawListColors (drawlistentry_t entry, size_t count, vec4 *color)
 
void tram::Render::API::SetDrawListSpecularities (drawlistentry_t entry, size_t count, float *weights, float *exponents, float *transparencies)
 
void tram::Render::API::SetLights (drawlistentry_t entry, light_t *lights)
 
void tram::Render::API::SetMatrix (drawlistentry_t entry, const mat4 &matrix)
 
void tram::Render::API::SetDrawListVertexArray (drawlistentry_t entry, vertexarray_t vertex_array_handle)
 
void tram::Render::API::SetDrawListIndexArray (drawlistentry_t entry, indexarray_t index_array_handle)
 
void tram::Render::API::SetDrawListIndexRange (drawlistentry_t entry, uint32_t index_offset, uint32_t index_length)
 
void tram::Render::API::SetDrawListShader (drawlistentry_t entry, vertexformat_t vertex_format, materialtype_t material_type)
 
void tram::Render::API::SetDrawListTextures (drawlistentry_t entry, size_t texture_count, texturehandle_t *textures)
 
light_t tram::Render::API::MakeLight ()
 
void tram::Render::API::DeleteLight (light_t light)
 
void tram::Render::API::SetLightParameters (light_t light, vec3 location, vec3 color, float distance, vec3 direction, float exponent)
 
texturehandle_t tram::Render::API::CreateTexture (ColorMode color_mode, TextureFilter texture_filter, uint32_t width, uint32_t height, void *data)
 
void tram::Render::API::ParseFormat (vertexarray_t &vertex_array, VertexDefinition vertex_format)
 
void tram::Render::API::PackVertices (vertexarray_t &vertex_array, void *data, size_t count)
 
void tram::Render::API::CreateIndexedVertexArray (VertexDefinition vertex_format, vertexarray_t &vertex_array, indexarray_t &index_array, size_t vertex_size, void *vertex_data, size_t index_size, void *index_data)
 
void tram::Render::API::CreateVertexArray (VertexDefinition vertex_format, vertexarray_t &vertex_array)
 
void tram::Render::API::UpdateVertexArray (vertexarray_t &vertex_buffer, size_t data_size, void *data)
 
void tram::Render::API::SetViewMatrix (const mat4 &matrix, layer_t layer)
 
void tram::Render::API::SetProjectionMatrix (const mat4 &matrix, layer_t layer)
 
void tram::Render::API::GetScreen (char *buffer, int w, int h)
 
void tram::Render::API::Init ()
 
ContextType tram::Render::API::GetContext ()
 
uint32_t tram::Render::API::GetMaxIndexRangeLength ()
 
void tram::Render::API::SetDevice (void *)
 

Variables

Pool< SWTexture > tram::Render::API::texture_list ("texture list", 200, false)
 
Pool< SWVertexArray > tram::Render::API::vertex_arrays ("vertex_arrays list", 200, false)
 
Pool< SWIndexArray > tram::Render::API::index_arrays ("index_arrays list", 200, false)
 
ScanlineBuffer * tram::Render::API::scanlines = new ScanlineBuffer
 
Pool< D3DDrawListEntry > tram::Render::API::draw_list ("render list", 500, false)
 
Pool< D3DLight > tram::Render::API::light_list ("light list", 200, false)