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

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

    __osViNext->x.factor = value;
    __osViNext->state |= VI_STATE_XSCALE_SET;

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

    __osRestoreInt(prevInt);
}