Small optimizations
This commit is contained in:
parent
040c4ae81c
commit
2d687fadf0
2
Makefile
2
Makefile
|
@ -14,7 +14,7 @@ DEPS = $(patsubst $(SRCDIR)/%,build_sdl/%,$(SOURCES:.cpp=.d))
|
|||
|
||||
TARGET = racing
|
||||
|
||||
debug: CFLAGS += -O0 -g
|
||||
debug: CFLAGS += -Og -g
|
||||
debug: $(TARGET)
|
||||
|
||||
release: CFLAGS += -Ofast
|
||||
|
|
|
@ -35,7 +35,7 @@ MKG3AFLAGS := -n basic:test -i uns:../unselected.bmp -i sel:../selected.bmp
|
|||
# (LTO). Doing so will usually allow the compiler to generate much better code
|
||||
# (smaller and/or faster), but may expose bugs in your code that don't cause
|
||||
# any trouble without LTO enabled.
|
||||
CFLAGS = -Ofast -Wall -Wextra $(MACHDEP) $(INCLUDE) -DPRIZM
|
||||
CFLAGS = -Ofast -Wall -Wextra $(MACHDEP) $(INCLUDE) -DPRIZM -funroll-loops
|
||||
CXXFLAGS = $(CFLAGS) -fno-exceptions
|
||||
|
||||
LDFLAGS = $(MACHDEP) -T$(FXCGSDK)/toolchain/prizm.x -Wl,-static -Wl,-gc-sections
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
#define NEAR_PLANE 0.1
|
||||
#define FAR_PLANE 100
|
||||
|
||||
#define PIXEL_SIZE 4
|
||||
#define PIXEL_SIZE 1
|
||||
#define RENDER_WIDTH (DISPLAY_WIDTH/PIXEL_SIZE)
|
||||
#define RENDER_HEIGHT (DISPLAY_HEIGHT/PIXEL_SIZE)
|
||||
|
||||
|
|
|
@ -137,7 +137,7 @@ namespace Rasterizer {
|
|||
}
|
||||
|
||||
for(int y = minY; y < maxY; y++){
|
||||
bool hasEntered = false;
|
||||
// bool hasEntered = false;
|
||||
int ie1 = e1;
|
||||
int ie2 = e2;
|
||||
int ie3 = e3;
|
||||
|
@ -154,31 +154,21 @@ namespace Rasterizer {
|
|||
vec3d b = {i_bary_u, i_bary_v, i_bary_w};
|
||||
// i_z = (b.x * i_p0z + b.y * i_p1z + b.z * i_p2z);
|
||||
i_z.i = ((b.x.i * i_p0z.i) + (b.y.i * i_p1z.i) + (b.z.i * i_p2z.i));
|
||||
visible = visible && (i_z > depthBuffer[x+y*RENDER_WIDTH] || depthBuffer[x+y*RENDER_WIDTH] == -1);
|
||||
}
|
||||
if(visible){
|
||||
// Color c = shader.fragmentShader(triangle.c, shader.uniforms);
|
||||
// if((ie1 >= -2 && ie1 <= 2)
|
||||
// || (ie2 >= -2 && ie2 <= 2)
|
||||
// || (ie3 >= -2 && ie3 <= 2))
|
||||
// c = {255 - c.r, 255 - c.g, 255 - c.b};
|
||||
if(useDepth){
|
||||
if(i_z > depthBuffer[x+y*RENDER_WIDTH] || depthBuffer[x+y*RENDER_WIDTH] == -1){
|
||||
depthBuffer[x+y*RENDER_WIDTH] = i_z;
|
||||
// if(!(i_z == 0)){
|
||||
// c.r = (int)(fp(c.r) * i_z * fp(100));
|
||||
// c.g = (int)(fp(c.g) * i_z * fp(100));
|
||||
// c.b = (int)(fp(c.b) * i_z * fp(100));
|
||||
// }
|
||||
#if PIXEL_SIZE == 1
|
||||
Display::drawPoint(x, y, triangle.c);
|
||||
#else
|
||||
Display::fillRect(x*PIXEL_SIZE, y*PIXEL_SIZE, PIXEL_SIZE, PIXEL_SIZE, triangle.c);
|
||||
#endif
|
||||
}
|
||||
} else {
|
||||
#if PIXEL_SIZE == 1
|
||||
Display::drawPoint(x, y, triangle.c);
|
||||
#else
|
||||
Display::fillRect(x*PIXEL_SIZE, y*PIXEL_SIZE, PIXEL_SIZE, PIXEL_SIZE, triangle.c);
|
||||
#endif
|
||||
}
|
||||
hasEntered = true;
|
||||
} else if(hasEntered) {
|
||||
break;
|
||||
}
|
||||
ie1 += (p0.y - p1.y);
|
||||
ie2 += (p1.y - p2.y);
|
||||
|
|
Loading…
Reference in New Issue