mirror of https://github.com/mgba-emu/mgba.git
DS GX: Basic cleanup
This commit is contained in:
parent
4beb293ac1
commit
5efbf8dc66
|
@ -115,13 +115,12 @@ static struct DSGXRenderer dummyRenderer = {
|
||||||
};
|
};
|
||||||
|
|
||||||
static void _pullPipe(struct DSGX* gx) {
|
static void _pullPipe(struct DSGX* gx) {
|
||||||
|
struct DSGXEntry entry;
|
||||||
if (CircleBufferSize(&gx->fifo) >= sizeof(struct DSGXEntry)) {
|
if (CircleBufferSize(&gx->fifo) >= sizeof(struct DSGXEntry)) {
|
||||||
struct DSGXEntry entry = { 0 };
|
|
||||||
CircleBufferRead(&gx->fifo, &entry, sizeof(entry));
|
CircleBufferRead(&gx->fifo, &entry, sizeof(entry));
|
||||||
CircleBufferWrite(&gx->pipe, &entry, sizeof(entry));
|
CircleBufferWrite(&gx->pipe, &entry, sizeof(entry));
|
||||||
}
|
}
|
||||||
if (CircleBufferSize(&gx->fifo) >= sizeof(struct DSGXEntry)) {
|
if (CircleBufferSize(&gx->fifo) >= sizeof(struct DSGXEntry)) {
|
||||||
struct DSGXEntry entry = { 0 };
|
|
||||||
CircleBufferRead(&gx->fifo, &entry, sizeof(entry));
|
CircleBufferRead(&gx->fifo, &entry, sizeof(entry));
|
||||||
CircleBufferWrite(&gx->pipe, &entry, sizeof(entry));
|
CircleBufferWrite(&gx->pipe, &entry, sizeof(entry));
|
||||||
}
|
}
|
||||||
|
@ -1290,7 +1289,6 @@ static void _fifoRun(struct mTiming* timing, void* context, uint32_t cyclesLate)
|
||||||
_flushOutstanding(gx);
|
_flushOutstanding(gx);
|
||||||
}
|
}
|
||||||
DSGXUpdateGXSTAT(gx);
|
DSGXUpdateGXSTAT(gx);
|
||||||
_updateDMA(gx);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void DSGXInit(struct DSGX* gx) {
|
void DSGXInit(struct DSGX* gx) {
|
||||||
|
|
|
@ -774,17 +774,17 @@ static void DSGXSoftwareRendererDrawScanline(struct DSGXRenderer* renderer, int
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct DSGXSoftwareSpan span;
|
||||||
size_t p;
|
size_t p;
|
||||||
for (p = 0; p < DSGXSoftwarePolygonListSize(&softwareRenderer->activePolys); ++p) {
|
for (p = 0; p < DSGXSoftwarePolygonListSize(&softwareRenderer->activePolys); ++p) {
|
||||||
struct DSGXSoftwarePolygon* poly = DSGXSoftwarePolygonListGetPointer(&softwareRenderer->activePolys, p);
|
struct DSGXSoftwarePolygon* poly = DSGXSoftwarePolygonListGetPointer(&softwareRenderer->activePolys, p);
|
||||||
DSGXSoftwareEdgeListClear(&softwareRenderer->activeEdges);
|
DSGXSoftwareEdgeListClear(&softwareRenderer->activeEdges);
|
||||||
_preparePoly(renderer, softwareRenderer->verts, poly);
|
_preparePoly(renderer, softwareRenderer->verts, poly);
|
||||||
|
span.poly = poly;
|
||||||
|
span.polyId = DSGXPolygonAttrsGetId(poly->polyParams);
|
||||||
int y;
|
int y;
|
||||||
for (y = poly->minY; y <= poly->maxY; ++y) {
|
for (y = poly->minY; y <= poly->maxY; ++y) {
|
||||||
struct DSGXSoftwareSpan span = {
|
span.ep[0].coord[3] = 0;
|
||||||
.poly = poly,
|
|
||||||
.polyId = DSGXPolygonAttrsGetId(poly->polyParams),
|
|
||||||
};
|
|
||||||
size_t i;
|
size_t i;
|
||||||
for (i = 0; i < DSGXSoftwareEdgeListSize(&softwareRenderer->activeEdges); ++i) {
|
for (i = 0; i < DSGXSoftwareEdgeListSize(&softwareRenderer->activeEdges); ++i) {
|
||||||
struct DSGXSoftwareEdge* edge = DSGXSoftwareEdgeListGetPointer(&softwareRenderer->activeEdges, i);
|
struct DSGXSoftwareEdge* edge = DSGXSoftwareEdgeListGetPointer(&softwareRenderer->activeEdges, i);
|
||||||
|
|
Loading…
Reference in New Issue