mirror of
https://github.com/scp-fs2open/fs2open.github.com.git
synced 2026-11-12 16:17:44 -10:00
ok, something aparently went wrong, last time, so I'm commiting again
hopefully it should work this time damnit WORK!!!
This commit is contained in:
1 parent
3979af39b1
commit
6d7c837732
42 files changed
+1798
-448
No files matched your search
+13
-27
@@ -157,6 +157,7 @@ const geometry_batcher &geometry_batcher::operator=(const geometry_batcher &geo)
|
||||
void geometry_batcher::draw_bitmap(vertex *pnt, int orient, float rad, float depth)
|
||||
{
|
||||
|
||||
Assert(n_allocated > n_to_render + 2);
|
||||
vec3d*cam_position;
|
||||
matrix*cam_matrix;
|
||||
if(space == LOCAL_SPACE){
|
||||
@@ -271,6 +272,7 @@ void geometry_batcher::draw_bitmap(vertex *pnt, int orient, float rad, float dep
|
||||
|
||||
void geometry_batcher::draw_bitmap(vertex *pnt, int orient, float rad, float angle, float depth)
|
||||
{
|
||||
Assert(n_allocated > n_to_render + 2);
|
||||
|
||||
vec3d*cam_position;
|
||||
matrix*cam_matrix;
|
||||
@@ -392,6 +394,7 @@ void geometry_batcher::draw_bitmap(vertex *pnt, int orient, float rad, float ang
|
||||
|
||||
void geometry_batcher::draw_tri(vertex* verts)
|
||||
{
|
||||
Assert(n_allocated > n_to_render + 1);
|
||||
vertex *P = &vert[n_to_render *3 ];
|
||||
|
||||
for (int i = 0; i < 3; i++)
|
||||
@@ -402,6 +405,7 @@ void geometry_batcher::draw_tri(vertex* verts)
|
||||
|
||||
void geometry_batcher::draw_quad(vertex* verts)
|
||||
{
|
||||
Assert(n_allocated > n_to_render + 2);
|
||||
vertex *P = &vert[n_to_render * 3];
|
||||
|
||||
P[0] = verts[0];
|
||||
@@ -418,6 +422,7 @@ void geometry_batcher::draw_quad(vertex* verts)
|
||||
|
||||
void geometry_batcher::draw_beam(vec3d *start, vec3d *end, float width, float intensity)
|
||||
{
|
||||
Assert(n_allocated > n_to_render + 2);
|
||||
|
||||
vec3d*cam_position;
|
||||
matrix*cam_matrix;
|
||||
@@ -489,6 +494,7 @@ void geometry_batcher::draw_beam(vec3d *start, vec3d *end, float width, float in
|
||||
|
||||
float geometry_batcher::draw_laser(vec3d *p0, float width1, vec3d *p1, float width2, int r, int g, int b)
|
||||
{
|
||||
Assert(n_allocated > n_to_render + 2);
|
||||
width1 *= 0.5f;
|
||||
width2 *= 0.5f;
|
||||
|
||||
@@ -593,13 +599,11 @@ void geometry_batcher::render(int flags)
|
||||
// laser batcher
|
||||
|
||||
struct batch_item : public geometry_batcher {
|
||||
batch_item(): texture(-1), tmap_flags(0), alpha(1.0f), laser(false) {};
|
||||
batch_item(): texture(-1), tmap_flags(0), alpha(1.0f) {};
|
||||
|
||||
int texture;
|
||||
int tmap_flags;
|
||||
float alpha;
|
||||
|
||||
bool laser;
|
||||
};
|
||||
|
||||
static std::vector<batch_item> geometry_map;
|
||||
@@ -607,7 +611,7 @@ static std::vector<batch_item> geometry_map;
|
||||
int find_good_batch_item(int texture, int flags)
|
||||
{
|
||||
for (uint i = 0; i < geometry_map.size(); i++) {
|
||||
if (geometry_map[i].texture == texture)
|
||||
if (geometry_map[i].texture == texture && geometry_map[i].tmap_flags == flags)
|
||||
return i;
|
||||
}
|
||||
|
||||
@@ -631,10 +635,9 @@ float batch_add_laser(int texture, vec3d *p0, float width1, vec3d *p1, float wid
|
||||
}
|
||||
|
||||
geometry_batcher *item = NULL;
|
||||
int index = find_good_batch_item(texture);
|
||||
int index = find_good_batch_item(texture, TMAP_FLAG_TEXTURED | TMAP_FLAG_XPARENT | TMAP_HTL_3D_UNLIT | TMAP_FLAG_RGB | TMAP_FLAG_GOURAUD | TMAP_FLAG_CORRECT);
|
||||
Assert( index >= 0 );
|
||||
|
||||
geometry_map[index].laser = true;
|
||||
item = &geometry_map[index];
|
||||
|
||||
item->add_allocate(1);
|
||||
@@ -653,8 +656,6 @@ int batch_add_bitmap(int texture, int tmap_flags, vertex *pnt, int orient, float
|
||||
int index = find_good_batch_item(texture);
|
||||
Assert( index >= 0 );
|
||||
|
||||
Assert( geometry_map[index].laser == false );
|
||||
|
||||
geometry_map[index].tmap_flags = tmap_flags;
|
||||
geometry_map[index].alpha = alpha;
|
||||
|
||||
@@ -694,24 +695,15 @@ void batch_set_flag(int geo, int flag){
|
||||
|
||||
void batch_render_lasers()
|
||||
{
|
||||
for (uint i = 0; i < geometry_map.size(); i++) {
|
||||
if ( !geometry_map[i].laser )
|
||||
continue;
|
||||
|
||||
if ( !geometry_map[i].need_to_render() )
|
||||
continue;
|
||||
|
||||
Assert( geometry_map[i].texture >= 0 );
|
||||
gr_set_bitmap(geometry_map[i].texture, GR_ALPHABLEND_FILTER, GR_BITBLT_MODE_NORMAL, 0.99999f);
|
||||
geometry_map[i].render(TMAP_FLAG_TEXTURED | TMAP_FLAG_XPARENT | TMAP_HTL_3D_UNLIT | TMAP_FLAG_RGB | TMAP_FLAG_GOURAUD | TMAP_FLAG_CORRECT);
|
||||
}
|
||||
}
|
||||
|
||||
void batch_render_bitmaps()
|
||||
{
|
||||
}
|
||||
|
||||
void batch_render_all()
|
||||
{
|
||||
for (uint i = 0; i < geometry_map.size(); i++) {
|
||||
if ( geometry_map[i].laser )
|
||||
continue;
|
||||
|
||||
if ( !geometry_map[i].need_to_render() )
|
||||
continue;
|
||||
@@ -722,12 +714,6 @@ void batch_render_bitmaps()
|
||||
}
|
||||
}
|
||||
|
||||
void batch_render_all()
|
||||
{
|
||||
batch_render_lasers();
|
||||
batch_render_bitmaps();
|
||||
}
|
||||
|
||||
void batch_reset()
|
||||
{
|
||||
geometry_map.clear();
|
||||
|
||||
Reference in new issue
Block a user