World of Might and Magic  0.2.0
Open reimplementation of Might and Magic 6 7 8 game engine
Структура Viewport

#include <Viewport.h>

Открытые члены

 Viewport ()
 
void SetScreen (int uX, int uY, int uZ, int uW)
 
void SetFOV (float fov)
 
void SetViewport (int uX, int uY, int uZ, int uW)
 
bool Contains (unsigned int x, unsigned int y)
 

Открытые атрибуты

int uScreen_TL_X
 
int uScreen_TL_Y
 
int uScreen_BR_X
 
int uScreen_BR_Y
 
int uViewportTL_X
 
int uViewportTL_Y
 
int uViewportBR_X
 
int uViewportBR_Y
 
int uScreenWidth
 
int uScreenHeight
 
int uScreenCenterX
 
int uScreenCenterY
 
int field_of_view
 

Подробное описание

См. определение в файле Viewport.h строка 7

Конструктор(ы)

◆ Viewport()

Viewport::Viewport ( )
inline

См. определение в файле Viewport.h строка 8

8  {
9  field_of_view = 65536 / 2;
10  SetScreen(0, 0, 639, 479);
11  }

Перекрестные ссылки field_of_view и SetScreen().

+ Граф вызовов:

Методы

◆ SetScreen()

void Viewport::SetScreen ( int  uX,
int  uY,
int  uZ,
int  uW 
)

См. определение в файле Viewport.cpp строка 26

27  {
28  unsigned int tl_x; // edx@1
29  unsigned int br_x; // esi@1
30  unsigned int tl_y; // edi@3
31  unsigned int br_y; // eax@3
32 
33  tl_x = sTL_X;
34  br_x = sBR_X;
35  if (sTL_X > sBR_X) {
36  br_x = sTL_X; // swap x's
37  tl_x = sBR_X;
38  }
39  tl_y = sTL_Y;
40  br_y = sBR_Y;
41  if (sTL_Y > sBR_Y) {
42  br_y = sTL_Y; // swap y's
43  tl_y = sBR_Y;
44  }
45  this->uScreen_TL_X = tl_x;
46  this->uScreen_TL_Y = tl_y;
47  this->uScreen_BR_X = br_x;
48  this->uScreen_BR_Y = br_y;
49  this->uScreenWidth = br_x - tl_x + 1;
50  this->uScreenHeight = br_y - tl_y + 1;
51  this->uScreenCenterX = (signed int)(br_x + tl_x) / 2;
52  // if ( render->pRenderD3D == 0 )
53  // this->uScreenCenterY = this->uScreen_BR_Y - fixpoint_mul(field_30,
54  // uScreenHeight);
55  // else
56  this->uScreenCenterY = (br_y + tl_y) / 2;
58  this->uScreen_BR_Y);
59 }

Перекрестные ссылки SetViewport(), uScreen_BR_X, uScreen_BR_Y, uScreen_TL_X, uScreen_TL_Y, uScreenCenterX, uScreenCenterY, uScreenHeight и uScreenWidth.

Используется в FinalInitialization(), MM7Initialization(), SetFOV() и Viewport().

+ Граф вызовов:
+ Граф вызова функции:

◆ SetFOV()

void Viewport::SetFOV ( float  fov)

См. определение в файле Viewport.cpp строка 62

62  {
63  this->field_of_view = field_of_view * 65536.0f;
65 }

Перекрестные ссылки field_of_view, SetScreen(), uScreen_BR_X, uScreen_BR_Y, uScreen_TL_X и uScreen_TL_Y.

Используется в FinalInitialization(), Render::InitializeFullscreen(), RenderOpenGL::SwitchToWindow() и Render::SwitchToWindow().

+ Граф вызовов:
+ Граф вызова функции:

◆ SetViewport()

void Viewport::SetViewport ( int  uX,
int  uY,
int  uZ,
int  uW 
)

См. определение в файле Viewport.cpp строка 72

72  {
73  int tl_x;
74  int tl_y;
75  int br_x;
76  int br_y;
77 
78  tl_x = sTL_X;
79  if (sTL_X < this->uScreen_TL_X) tl_x = this->uScreen_TL_X;
80  tl_y = sTL_Y;
81  if (sTL_Y < this->uScreen_TL_Y) tl_y = this->uScreen_TL_Y;
82  br_x = sBR_X;
83  if (sBR_X > this->uScreen_BR_X) br_x = this->uScreen_BR_X;
84  br_y = sBR_Y;
85  if (sBR_Y > this->uScreen_BR_Y) br_y = this->uScreen_BR_Y;
86  this->uViewportTL_Y = tl_y;
87  this->uViewportTL_X = tl_x;
88  this->uViewportBR_X = br_x;
89  this->uViewportBR_Y = br_y;
90 }

Перекрестные ссылки uScreen_BR_X, uScreen_BR_Y, uScreen_TL_X, uScreen_TL_Y, uViewportBR_X, uViewportBR_Y, uViewportTL_X и uViewportTL_Y.

Используется в SetScreen().

+ Граф вызова функции:

◆ Contains()

bool Viewport::Contains ( unsigned int  x,
unsigned int  y 
)

См. определение в файле Viewport.cpp строка 67

67  {
68  return ((int)x >= uViewportTL_X && (int)x <= uViewportBR_X &&
69  (int)y >= uViewportTL_Y && (int)y <= uViewportBR_Y);
70 }

Перекрестные ссылки uViewportBR_X, uViewportBR_Y, uViewportTL_X и uViewportTL_Y.

Используется в GameUI_WritePointedObjectStatusString() и Mouse::UI_OnMouseLeftClick().

+ Граф вызова функции:

Данные класса

◆ uScreen_TL_X

int Viewport::uScreen_TL_X

См. определение в файле Viewport.h строка 18

Используется в Vis::DoesRayIntersectBillboard(), Weather::Initialize(), Engine::PickMouse(), BLVRenderParams::Reset(), SetFOV(), SetScreen() и SetViewport().

◆ uScreen_TL_Y

int Viewport::uScreen_TL_Y

◆ uScreen_BR_X

int Viewport::uScreen_BR_X

См. определение в файле Viewport.h строка 20

Используется в Vis::DoesRayIntersectBillboard(), Weather::Initialize(), Engine::PickMouse(), BLVRenderParams::Reset(), SetFOV(), SetScreen() и SetViewport().

◆ uScreen_BR_Y

int Viewport::uScreen_BR_Y

См. определение в файле Viewport.h строка 21

Используется в Vis::DoesRayIntersectBillboard(), Weather::Initialize(), Engine::PickMouse(), BLVRenderParams::Reset(), SetFOV(), SetScreen() и SetViewport().

◆ uViewportTL_X

◆ uViewportTL_Y

◆ uViewportBR_X

◆ uViewportBR_Y

◆ uScreenWidth

int Viewport::uScreenWidth

См. определение в файле Viewport.h строка 26

Используется в IndoorCameraD3D::CreateWorldMatrixAndSomeStuff() и SetScreen().

◆ uScreenHeight

int Viewport::uScreenHeight

См. определение в файле Viewport.h строка 27

Используется в IndoorCameraD3D::CreateWorldMatrixAndSomeStuff() и SetScreen().

◆ uScreenCenterX

◆ uScreenCenterY

◆ field_of_view

int Viewport::field_of_view

См. определение в файле Viewport.h строка 30

Используется в BLVRenderParams::Reset(), SetFOV() и Viewport().


Объявления и описания членов структур находятся в файлах:
Viewport::uScreenWidth
int uScreenWidth
Definition: Viewport.h:26
Viewport::uViewportTL_Y
int uViewportTL_Y
Definition: Viewport.h:23
Viewport::uScreen_TL_X
int uScreen_TL_X
Definition: Viewport.h:18
Viewport::SetViewport
void SetViewport(int uX, int uY, int uZ, int uW)
Definition: Viewport.cpp:72
Viewport::uScreen_TL_Y
int uScreen_TL_Y
Definition: Viewport.h:19
y
EGLSurface EGLint EGLint y
Definition: SDL_egl.h:1596
Viewport::uScreen_BR_Y
int uScreen_BR_Y
Definition: Viewport.h:21
x
EGLSurface EGLint x
Definition: SDL_egl.h:1596
Viewport::uScreenHeight
int uScreenHeight
Definition: Viewport.h:27
Viewport::uScreen_BR_X
int uScreen_BR_X
Definition: Viewport.h:20
Viewport::uViewportBR_X
int uViewportBR_X
Definition: Viewport.h:24
Viewport::uScreenCenterY
int uScreenCenterY
Definition: Viewport.h:29
Viewport::uViewportBR_Y
int uViewportBR_Y
Definition: Viewport.h:25
Viewport::field_of_view
int field_of_view
Definition: Viewport.h:30
Viewport::uScreenCenterX
int uScreenCenterX
Definition: Viewport.h:28
Viewport::SetScreen
void SetScreen(int uX, int uY, int uZ, int uW)
Definition: Viewport.cpp:26
Viewport::uViewportTL_X
int uViewportTL_X
Definition: Viewport.h:22