Exemplo n.º 1
0
static void nvpr_set_transform(void *render, float *t, int reset)
{
    render_ctx *ctx = render;
    if (reset)
        identity(ctx->transform);
    Transform3x2 tr;
    tr[0][0] = t[0]; tr[1][0] = t[1];
    tr[0][1] = t[2]; tr[1][1] = t[3];
    tr[0][2] = t[4]; tr[1][2] = t[5];
    mul(ctx->transform, ctx->transform, tr);
    MatrixLoadToGL(ctx->transform);
}
Exemplo n.º 2
0
void display(void)
{
  glClear(GL_COLOR_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
  glMatrixPushEXT(GL_MODELVIEW); {
    Transform3x2 mat;

    mul(mat, view, model);
    MatrixLoadToGL(mat);
    drawTigerRange(filling, stroking, 0, path_count);
  } glMatrixPopEXT(GL_MODELVIEW);
  glutSwapBuffers();
}
Exemplo n.º 3
0
static void nvpr_begin_frame(void *render, int viewportWidth, int viewportHeight, int winWidth, int winHeight, int width, int height)
{
    render_ctx *ctx = render;
    ctx->winWidth = winWidth, ctx->winHeight = winHeight, ctx->width = width, ctx->height = height;
    g_glMatrixLoadIdentityEXT(GL_PROJECTION);
    g_glMatrixOrthoEXT(GL_PROJECTION, 0, winWidth, winHeight, 0, -1, 1);
    g_glMatrixLoadIdentityEXT(GL_MODELVIEW);
    float scalex = (float)width/viewportWidth;
    float scaley = (float)height/viewportHeight;
    float best_scale = scalex < scaley ? scalex : scaley;

    identity(ctx->transform);
    translate(ctx->transform, -(viewportWidth*best_scale - width)/2, -(viewportHeight*best_scale - height)/2);
    Transform3x2 tr;
    scale(tr, best_scale, best_scale);
    mul(ctx->transform, ctx->transform, tr);
    MatrixLoadToGL(ctx->transform);
}