#include "pipe/p_shader_tokens.h"
#include "util/u_inlines.h"
#include "util/u_simple_shaders.h"
+#include "util/u_memory.h"
/** Initialize the internal details */
struct program *
-pp_init_prog(struct pp_queue_t *ppq, struct pipe_screen *pscreen)
+pp_init_prog(struct pp_queue_t *ppq, struct pipe_context *pipe,
+ struct cso_context *cso)
{
-
- struct program *p = calloc(1, sizeof(struct program));
+ struct program *p;
pp_debug("Initializing program\n");
- if (!pscreen)
+ if (!pipe)
return NULL;
+ p = CALLOC(1, sizeof(struct program));
if (!p)
return NULL;
- p->screen = pscreen;
- p->pipe = pscreen->context_create(pscreen, NULL);
- p->cso = cso_create_context(p->pipe);
+ p->screen = pipe->screen;
+ p->pipe = pipe;
+ p->cso = cso;
{
static const float verts[4][2][4] = {
}
};
- p->vbuf = pipe_buffer_create(pscreen, PIPE_BIND_VERTEX_BUFFER,
+ p->vbuf = pipe_buffer_create(pipe->screen, PIPE_BIND_VERTEX_BUFFER,
PIPE_USAGE_STATIC, sizeof(verts));
pipe_buffer_write(p->pipe, p->vbuf, 0, sizeof(verts), verts);
}
p->rasterizer.cull_face = PIPE_FACE_NONE;
p->rasterizer.gl_rasterization_rules = 1;
+ p->rasterizer.depth_clip = 1;
p->sampler.wrap_s = p->sampler.wrap_t = p->sampler.wrap_r =
PIPE_TEX_WRAP_CLAMP_TO_EDGE;
p->surf.usage = PIPE_BIND_RENDER_TARGET;
p->surf.format = PIPE_FORMAT_B8G8R8A8_UNORM;
- p->pipe->set_sample_mask(p->pipe, ~0);
-
return p;
}