mirror of https://github.com/xemu-project/xemu.git
nv2a: Support line and poly anti-aliasing
This commit is contained in:
parent
e063fc37e7
commit
a34cab69dd
|
@ -467,6 +467,8 @@
|
|||
# define NV_PGRAPH_SETUPRASTER_POFFSETPOINTENABLE (1 << 6)
|
||||
# define NV_PGRAPH_SETUPRASTER_POFFSETLINEENABLE (1 << 7)
|
||||
# define NV_PGRAPH_SETUPRASTER_POFFSETFILLENABLE (1 << 8)
|
||||
# define NV_PGRAPH_SETUPRASTER_LINESMOOTHENABLE (1 << 10)
|
||||
# define NV_PGRAPH_SETUPRASTER_POLYSMOOTHENABLE (1 << 11)
|
||||
# define NV_PGRAPH_SETUPRASTER_CULLCTRL 0x00600000
|
||||
# define NV_PGRAPH_SETUPRASTER_CULLCTRL_FRONT 1
|
||||
# define NV_PGRAPH_SETUPRASTER_CULLCTRL_BACK 2
|
||||
|
@ -852,6 +854,8 @@
|
|||
# define NV097_SET_DEPTH_TEST_ENABLE 0x0000030C
|
||||
# define NV097_SET_DITHER_ENABLE 0x00000310
|
||||
# define NV097_SET_LIGHTING_ENABLE 0x00000314
|
||||
# define NV097_SET_LINE_SMOOTH_ENABLE 0x00000320
|
||||
# define NV097_SET_POLY_SMOOTH_ENABLE 0x00000324
|
||||
# define NV097_SET_SKIN_MODE 0x00000328
|
||||
# define NV097_SET_SKIN_MODE_OFF 0
|
||||
# define NV097_SET_SKIN_MODE_2G 1
|
||||
|
|
|
@ -1087,6 +1087,14 @@ void pgraph_method(NV2AState *d,
|
|||
SET_MASK(pg->regs[NV_PGRAPH_CSV0_C], NV_PGRAPH_CSV0_C_LIGHTING,
|
||||
parameter);
|
||||
break;
|
||||
case NV097_SET_LINE_SMOOTH_ENABLE:
|
||||
SET_MASK(pg->regs[NV_PGRAPH_SETUPRASTER],
|
||||
NV_PGRAPH_SETUPRASTER_LINESMOOTHENABLE, parameter);
|
||||
break;
|
||||
case NV097_SET_POLY_SMOOTH_ENABLE:
|
||||
SET_MASK(pg->regs[NV_PGRAPH_SETUPRASTER],
|
||||
NV_PGRAPH_SETUPRASTER_POLYSMOOTHENABLE, parameter);
|
||||
break;
|
||||
case NV097_SET_SKIN_MODE:
|
||||
SET_MASK(pg->regs[NV_PGRAPH_CSV0_D], NV_PGRAPH_CSV0_D_SKIN,
|
||||
parameter);
|
||||
|
@ -2149,6 +2157,20 @@ void pgraph_method(NV2AState *d,
|
|||
glDisable(GL_DITHER);
|
||||
}
|
||||
|
||||
/* Edge Antialiasing */
|
||||
if (pg->regs[NV_PGRAPH_SETUPRASTER] &
|
||||
NV_PGRAPH_SETUPRASTER_LINESMOOTHENABLE) {
|
||||
glEnable(GL_LINE_SMOOTH);
|
||||
} else {
|
||||
glDisable(GL_LINE_SMOOTH);
|
||||
}
|
||||
if (pg->regs[NV_PGRAPH_SETUPRASTER] &
|
||||
NV_PGRAPH_SETUPRASTER_POLYSMOOTHENABLE) {
|
||||
glEnable(GL_POLYGON_SMOOTH);
|
||||
} else {
|
||||
glDisable(GL_POLYGON_SMOOTH);
|
||||
}
|
||||
|
||||
//glDisableVertexAttribArray(NV2A_VERTEX_ATTR_DIFFUSE);
|
||||
//glVertexAttrib4f(NV2A_VERTEX_ATTR_DIFFUSE, 1.0, 1.0, 1.0, 1.0);
|
||||
|
||||
|
|
Loading…
Reference in New Issue