#include "main/glheader.h"
#include "main/macros.h"
-#include "main/imports.h"
#include "main/samplerobj.h"
+#include "main/state.h"
#include "math/m_xform.h"
#include "program/prog_instruction.h"
#include "program/prog_statevars.h"
#include "program/prog_execute.h"
#include "swrast/s_context.h"
#include "util/bitscan.h"
+#include "util/u_memory.h"
#include "tnl/tnl.h"
#include "tnl/t_context.h"
static inline void
check_float(float x)
{
- assert(!IS_INF_OR_NAN(x));
+ assert(!util_is_inf_or_nan(x));
assert(1.0e-15 <= x && x <= 1.0e15);
}
#endif
store->clipmask,
&store->ormask,
&store->andmask,
- !ctx->Transform.DepthClamp );
+ !(ctx->Transform.DepthClampNear &&
+ ctx->Transform.DepthClampFar) );
}
else {
VB->NdcPtr = NULL;
store->clipmask,
&store->ormask,
&store->andmask,
- !ctx->Transform.DepthClamp );
+ !(ctx->Transform.DepthClampNear &&
+ ctx->Transform.DepthClampFar) );
}
if (store->andmask) {
/* Test userclip planes. This contributes to VB->ClipMask.
*/
/** XXX NEW_SLANG _Enabled ??? */
- if (ctx->Transform.ClipPlanesEnabled && (!ctx->VertexProgram._Enabled ||
- ctx->VertexProgram.Current->IsPositionInvariant)) {
+ if (ctx->Transform.ClipPlanesEnabled &&
+ (!_mesa_arb_vertex_program_enabled(ctx) ||
+ ctx->VertexProgram.Current->arb.IsPositionInvariant)) {
userclip( ctx,
VB->ClipPtr,
store->clipmask,
/* make list of outputs to save some time below */
numOutputs = 0;
for (i = 0; i < VARYING_SLOT_MAX; i++) {
- if (program->OutputsWritten & BITFIELD64_BIT(i)) {
+ if (program->info.outputs_written & BITFIELD64_BIT(i)) {
outputs[numOutputs++] = i;
}
}
/* the vertex array case */
for (attr = 0; attr < VERT_ATTRIB_MAX; attr++) {
- if (program->InputsRead & BITFIELD64_BIT(attr)) {
+ if (program->info.inputs_read & BITFIELD64_BIT(attr)) {
const GLubyte *ptr = (const GLubyte*) VB->AttribPtr[attr]->data;
const GLuint size = VB->AttribPtr[attr]->size;
const GLuint stride = VB->AttribPtr[attr]->stride;
}
/* FOGC is a special case. Fragment shader expects (f,0,0,1) */
- if (program->OutputsWritten & BITFIELD64_BIT(VARYING_SLOT_FOGC)) {
+ if (program->info.outputs_written & BITFIELD64_BIT(VARYING_SLOT_FOGC)) {
store->results[VARYING_SLOT_FOGC].data[i][1] = 0.0;
store->results[VARYING_SLOT_FOGC].data[i][2] = 0.0;
store->results[VARYING_SLOT_FOGC].data[i][3] = 1.0;
#endif
#if 0
printf("HPOS: %f %f %f %f\n",
- machine->Outputs[0][0],
- machine->Outputs[0][1],
- machine->Outputs[0][2],
+ machine->Outputs[0][0],
+ machine->Outputs[0][1],
+ machine->Outputs[0][2],
machine->Outputs[0][3]);
#endif
}
unmap_textures(ctx, program);
- if (program->IsPositionInvariant) {
+ if (program->arb.IsPositionInvariant) {
/* We need the exact same transform as in the fixed function path here
* to guarantee invariance, depending on compiler optimization flags
* results could be different otherwise.
}
for (i = 0; i < ctx->Const.MaxVarying; i++) {
- if (program->OutputsWritten & BITFIELD64_BIT(VARYING_SLOT_VAR0 + i)) {
+ if (program->info.outputs_written &
+ BITFIELD64_BIT(VARYING_SLOT_VAR0 + i)) {
/* Note: varying results get put into the generic attributes */
VB->AttribPtr[VERT_ATTRIB_GENERIC0+i]
= &store->results[VARYING_SLOT_VAR0 + i];
/* a few other misc allocations */
_mesa_vector4f_alloc( &store->ndcCoords, 0, size, 32 );
- store->clipmask = _mesa_align_malloc(sizeof(GLubyte)*size, 32 );
+ store->clipmask = align_malloc(sizeof(GLubyte)*size, 32 );
return GL_TRUE;
}
/* free misc arrays */
_mesa_vector4f_free( &store->ndcCoords );
- _mesa_align_free( store->clipmask );
+ align_free( store->clipmask );
free( store );
stage->privatePtr = NULL;