summaryrefslogtreecommitdiff
path: root/src/libultra/io/visetxscale.c
blob: 94f192b87942f3e38e806e9dfdc932dc01250f1e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include "ultra64.h"

void osViSetXScale(f32 value) {
    register u32 nomValue;
    register u32 saveMask = __osDisableInt();

    __osViNext->x.factor = value;

    __osViNext->state |= VI_STATE_XSCALE_UPDATED;

    nomValue = __osViNext->modep->comRegs.xScale & VI_SCALE_MASK;
    __osViNext->x.scale = (u32)(__osViNext->x.factor * nomValue) & VI_SCALE_MASK;

    __osRestoreInt(saveMask);
}