#include "main/image.h"
#include "main/macros.h"
#include "main/teximage.h"
+#include "main/framebuffer.h"
#include "program/program.h"
#include "program/prog_print.h"
unsigned offset;
st_flush_bitmap_cache(st);
+ st_invalidate_readpix_cache(st);
- st_validate_state(st, ST_PIPELINE_RENDER);
+ st_validate_state(st, ST_PIPELINE_META);
/* determine if we need vertex color */
- if (ctx->FragmentProgram._Current->Base.InputsRead & VARYING_BIT_COL0)
+ if (ctx->FragmentProgram._Current->info.inputs_read & VARYING_BIT_COL0)
emitColor = GL_TRUE;
else
emitColor = GL_FALSE;
GLfloat *vbuf = NULL;
GLuint tex_attr;
- u_upload_alloc(st->uploader, 0,
+ u_upload_alloc(pipe->stream_uploader, 0,
numAttribs * 4 * 4 * sizeof(GLfloat), 4,
&offset, &vbuffer, (void **) &vbuf);
if (!vbuffer) {
/* positions (in clip coords) */
{
const struct gl_framebuffer *fb = ctx->DrawBuffer;
- const GLfloat fb_width = (GLfloat)fb->Width;
- const GLfloat fb_height = (GLfloat)fb->Height;
+ const GLfloat fb_width = (GLfloat)_mesa_geometric_width(fb);
+ const GLfloat fb_height = (GLfloat)_mesa_geometric_height(fb);
const GLfloat clip_x0 = (GLfloat)(x0 / fb_width * 2.0 - 1.0);
const GLfloat clip_y0 = (GLfloat)(y0 / fb_height * 2.0 - 1.0);
}
}
- u_upload_unmap(st->uploader);
+ u_upload_unmap(pipe->stream_uploader);
#undef SET_ATTRIB
}
{
const struct gl_framebuffer *fb = ctx->DrawBuffer;
const GLboolean invert = (st_fb_orientation(fb) == Y_0_TOP);
- const GLfloat width = (GLfloat)fb->Width;
- const GLfloat height = (GLfloat)fb->Height;
+ const GLfloat width = (GLfloat)_mesa_geometric_width(fb);
+ const GLfloat height = (GLfloat)_mesa_geometric_height(fb);
struct pipe_viewport_state vp;
vp.scale[0] = 0.5f * width;
vp.scale[1] = height * (invert ? -0.5f : 0.5f);