@ -354,10 +354,35 @@ public:
f32 scale_x ;
f32 scale_y ;
f32 scale_z ;
u 32 translate_x ;
u 32 translate_y ;
u 32 translate_z ;
f 32 translate_x ;
f 32 translate_y ;
f 32 translate_z ;
INSERT_PADDING_WORDS ( 2 ) ;
MathUtil : : Rectangle < s32 > GetRect ( ) const {
return {
GetX ( ) , // left
GetY ( ) + GetHeight ( ) , // top
GetX ( ) + GetWidth ( ) , // right
GetY ( ) // bottom
} ;
} ;
s32 GetX ( ) const {
return static_cast < s32 > ( std : : max ( 0.0f , translate_x - std : : fabs ( scale_x ) ) ) ;
}
s32 GetY ( ) const {
return static_cast < s32 > ( std : : max ( 0.0f , translate_y - std : : fabs ( scale_y ) ) ) ;
}
s32 GetWidth ( ) const {
return static_cast < s32 > ( translate_x + std : : fabs ( scale_x ) ) - GetX ( ) ;
}
s32 GetHeight ( ) const {
return static_cast < s32 > ( translate_y + std : : fabs ( scale_y ) ) - GetY ( ) ;
}
} viewport_transform [ NumViewports ] ;
struct {
@ -371,15 +396,6 @@ public:
} ;
float depth_range_near ;
float depth_range_far ;
MathUtil : : Rectangle < s32 > GetRect ( ) const {
return {
static_cast < s32 > ( x ) , // left
static_cast < s32 > ( y + height ) , // top
static_cast < s32 > ( x + width ) , // right
static_cast < s32 > ( y ) // bottom
} ;
} ;
} viewport [ NumViewports ] ;
INSERT_PADDING_WORDS ( 0x1D ) ;