Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
Clark Lin
PracticeDx
Commits
b9789a92
Commit
b9789a92
authored
Mar 16, 2023
by
Administrator
Browse files
added color array in constructor, added transformation update logic in box and triangle.
parent
aed9aece
Changes
9
Show whitespace changes
Inline
Side-by-side
PracticeDx/Box.cpp
View file @
b9789a92
...
@@ -11,55 +11,43 @@
...
@@ -11,55 +11,43 @@
#include "TransformCBuf.h"
#include "TransformCBuf.h"
#include "Graphics.h"
#include "Graphics.h"
Box
::
Box
(
Graphics
&
gfx
,
float
position
[][
6
],
float
r
,
float
g
,
float
b
,
Logger
&
logger
)
Box
::
Box
(
Graphics
&
gfx
,
float
position
[][
3
],
float
color
[][
3
],
Logger
&
logger
)
:
r
(
r
),
g
(
g
),
b
(
b
)
{
{
// Assign position values
// Assign position values
/*
for (int i = 0; i <
3
; i++)
for
(
int
i
=
0
;
i
<
8
;
i
++
)
{
{
for (int j = 0; j <
4
; j++)
for
(
int
j
=
0
;
j
<
3
;
j
++
)
{
{
this
->
position
[
i
][
j
]
=
position
[
i
][
j
];
this
->
position
[
i
][
j
]
=
position
[
i
][
j
];
}
}
}*/
}
// Assign color values
for
(
int
i
=
0
;
i
<
6
;
i
++
)
{
for
(
int
j
=
0
;
j
<
3
;
j
++
)
{
this
->
color
[
i
][
j
]
=
color
[
i
][
j
];
}
}
/************************************
/************************************
* 2.3 DefineVertexBuffer
* 2.3 DefineVertexBuffer
************************************/
************************************/
const
std
::
vector
<
Struct
Box
Vertex
>
vertices
=
const
std
::
vector
<
StructVertex
>
vertices
=
{
{
// left bottom back
{
position
[
0
][
0
],
position
[
0
][
1
],
position
[
0
][
2
]
},
{
-
1.0
f
,
-
1.0
f
,
-
1.0
f
,
1.0
f
,
0.0
f
,
0.0
f
},
{
position
[
1
][
0
],
position
[
1
][
1
],
position
[
1
][
2
]
},
// right bottom back
{
position
[
2
][
0
],
position
[
2
][
1
],
position
[
2
][
2
]
},
{
1.0
f
,
-
1.0
f
,
-
1.0
f
,
0.0
f
,
1.0
f
,
0.0
f
},
{
position
[
3
][
0
],
position
[
3
][
1
],
position
[
3
][
2
]
},
// left top back
{
position
[
4
][
0
],
position
[
4
][
1
],
position
[
4
][
2
]
},
{
-
1.0
f
,
1.0
f
,
-
1.0
f
,
0.0
f
,
0.0
f
,
1.0
f
},
{
position
[
5
][
0
],
position
[
5
][
1
],
position
[
5
][
2
]
},
// right top back
{
position
[
6
][
0
],
position
[
6
][
1
],
position
[
6
][
2
]
},
{
1.0
f
,
1.0
f
,
-
1.0
f
,
1.0
f
,
1.0
f
,
0.0
f
},
{
position
[
7
][
0
],
position
[
7
][
1
],
position
[
7
][
2
]
},
// left bottom front
{
-
1.0
f
,
-
1.0
f
,
1.0
f
,
1.0
f
,
0.0
f
,
1.0
f
},
// right bottom front
{
1.0
f
,
-
1.0
f
,
1.0
f
,
0.0
f
,
1.0
f
,
1.0
f
},
// left top front
{
-
1.0
f
,
1.0
f
,
1.0
f
,
0.0
f
,
0.0
f
,
0.0
f
},
// right top front
{
1.0
f
,
1.0
f
,
1.0
f
,
1.0
f
,
1.0
f
,
1.0
f
},
};
};
AddBind
(
std
::
make_unique
<
VertexBuffer
>
(
gfx
,
vertices
,
logger
));
AddBind
(
std
::
make_unique
<
VertexBuffer
>
(
gfx
,
vertices
,
logger
));
/*for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 4; j++)
{
logger.PutLog("Box::Box", std::to_string(this->position[i][j]));
}
}*/
/************************************
/************************************
* 2.7 DefineVertexShader
* 2.7 DefineVertexShader
************************************/
************************************/
...
@@ -84,42 +72,27 @@ Box::Box(Graphics& gfx, float position[][6], float r, float g, float b, Logger&
...
@@ -84,42 +72,27 @@ Box::Box(Graphics& gfx, float position[][6], float r, float g, float b, Logger&
0
,
4
,
2
,
2
,
4
,
6
,
0
,
4
,
2
,
2
,
4
,
6
,
0
,
1
,
4
,
1
,
5
,
4
0
,
1
,
4
,
1
,
5
,
4
};
};
/*const std::vector<unsigned short> indices =
{
0,1,2, 0,2,1,
0,1,2, 0,2,1
};*/
AddIndexBuffer
(
std
::
make_unique
<
IndexBuffer
>
(
gfx
,
indices
,
logger
));
AddIndexBuffer
(
std
::
make_unique
<
IndexBuffer
>
(
gfx
,
indices
,
logger
));
/************************************
/************************************
* 2.6 DefineColorConstBuffer(PixelConstBuf)
* 2.6 DefineColorConstBuffer(PixelConstBuf)
************************************/
************************************/
/*const StructPixelConstBuf cb2 =
{
{
{ 1.0f,0.0f,1.0f },
{ 1.0f,0.0f,0.0f },
{ 0.0f,1.0f,0.0f },
{ 0.0f,0.0f,1.0f },
{ 1.0f,1.0f,0.0f },
{ 0.0f,1.0f,1.0f },
}
};*/
const
StructPixelConstBuf
cb2
=
const
StructPixelConstBuf
cb2
=
{
{
{
{
{
1.0
f
,
0.0
f
,
1.0
f
},
{
color
[
0
][
0
],
color
[
0
][
1
],
color
[
0
][
2
]
},
{
1.0
f
,
0.0
f
,
0.0
f
},
{
color
[
0
][
0
],
color
[
0
][
1
],
color
[
0
][
2
]
},
{
0.0
f
,
1.0
f
,
0.0
f
},
{
color
[
1
][
0
],
color
[
1
][
1
],
color
[
1
][
2
]
},
{
0.0
f
,
0.0
f
,
1.0
f
},
{
color
[
1
][
0
],
color
[
1
][
1
],
color
[
1
][
2
]
},
{
1.0
f
,
1.0
f
,
0.0
f
},
{
color
[
2
][
0
],
color
[
2
][
1
],
color
[
2
][
2
]
},
{
0.0
f
,
1.0
f
,
1.0
f
},
{
color
[
2
][
0
],
color
[
2
][
1
],
color
[
2
][
2
]
},
{
1.0
f
,
0.0
f
,
1.0
f
},
{
color
[
3
][
0
],
color
[
3
][
1
],
color
[
3
][
2
]
},
{
1.0
f
,
0.0
f
,
0.0
f
},
{
color
[
3
][
0
],
color
[
3
][
1
],
color
[
3
][
2
]
},
{
0.0
f
,
1.0
f
,
0.0
f
},
{
color
[
4
][
0
],
color
[
4
][
1
],
color
[
4
][
2
]
},
{
0.0
f
,
0.0
f
,
1.0
f
},
{
color
[
4
][
0
],
color
[
4
][
1
],
color
[
4
][
2
]
},
{
1.0
f
,
1.0
f
,
0.0
f
},
{
color
[
5
][
0
],
color
[
5
][
1
],
color
[
5
][
2
]
},
{
0.0
f
,
1.0
f
,
1.0
f
},
{
color
[
5
][
0
],
color
[
5
][
1
],
color
[
5
][
2
]
},
}
}
};
};
...
@@ -146,17 +119,18 @@ Box::Box(Graphics& gfx, float position[][6], float r, float g, float b, Logger&
...
@@ -146,17 +119,18 @@ Box::Box(Graphics& gfx, float position[][6], float r, float g, float b, Logger&
}
}
/*
void
Box
::
Update
(
float
dt
)
noexcept
void
Box
::
Update
(
float
dt
)
noexcept
{
{
roll += droll * dt;
/*
roll += droll * dt;
pitch += dpitch * dt;
pitch += dpitch * dt;
yaw += dyaw * dt;
yaw += dyaw * dt;
theta += dtheta * dt;
theta += dtheta * dt;
phi += dphi * dt;
phi += dphi * dt;
chi += dchi * dt;
chi += dchi * dt;*/
dx
=
dt
;
//dy = dt;
//dz = dt;
}
}
*/
DirectX
::
XMMATRIX
Box
::
GetTransformXM
()
const
noexcept
DirectX
::
XMMATRIX
Box
::
GetTransformXM
()
const
noexcept
{
{
...
@@ -165,5 +139,6 @@ DirectX::XMMATRIX Box::GetTransformXM() const noexcept
...
@@ -165,5 +139,6 @@ DirectX::XMMATRIX Box::GetTransformXM() const noexcept
DirectX::XMMatrixRotationRollPitchYaw(theta, phi, chi) *
DirectX::XMMatrixRotationRollPitchYaw(theta, phi, chi) *
DirectX::XMMatrixTranslation(0.0f, 0.0f, 20.0f);*/
DirectX::XMMatrixTranslation(0.0f, 0.0f, 20.0f);*/
return
return
DirectX
::
XMMatrixTranslation
(
0.0
f
,
0.0
f
,
4.0
f
);
DirectX
::
XMMatrixTranslation
(
0.0
f
,
0.0
f
,
4.0
f
)
*
DirectX
::
XMMatrixTranslation
(
dx
,
dy
,
dz
);
}
}
\ No newline at end of file
PracticeDx/Box.h
View file @
b9789a92
...
@@ -5,13 +5,16 @@
...
@@ -5,13 +5,16 @@
class
Box
:
public
Drawable
class
Box
:
public
Drawable
{
{
public:
public:
Box
(
Graphics
&
gfx
,
float
position
[][
6
],
float
r
,
float
g
,
float
b
,
Logger
&
logger
);
Box
(
Graphics
&
gfx
,
float
position
[][
3
],
float
color
[][
3
],
Logger
&
logger
);
void
Update
(
float
dt
)
noexcept
override
;
DirectX
::
XMMATRIX
GetTransformXM
()
const
noexcept
override
;
DirectX
::
XMMATRIX
GetTransformXM
()
const
noexcept
override
;
private:
private:
// positional
// positional
float
position
[
8
][
6
];
float
position
[
8
][
3
];
// color
// color
float
r
;
float
color
[
6
][
3
];
float
g
;
// trasformation
float
b
;
float
dx
=
0.0
f
;
float
dy
=
0.0
f
;
float
dz
=
0.0
f
;
};
};
\ No newline at end of file
PracticeDx/Drawable.h
View file @
b9789a92
...
@@ -17,7 +17,7 @@ public:
...
@@ -17,7 +17,7 @@ public:
virtual
DirectX
::
XMMATRIX
GetTransformXM
()
const
noexcept
=
0
;
virtual
DirectX
::
XMMATRIX
GetTransformXM
()
const
noexcept
=
0
;
void
Draw
(
Graphics
&
gfx
,
Logger
&
logger
)
const
noexcept
;
void
Draw
(
Graphics
&
gfx
,
Logger
&
logger
)
const
noexcept
;
//
virtual void Update(float dt) noexcept = 0;
virtual
void
Update
(
float
dt
)
noexcept
=
0
;
void
AddBind
(
std
::
unique_ptr
<
Bindable
>
bind
)
noexcept
;
void
AddBind
(
std
::
unique_ptr
<
Bindable
>
bind
)
noexcept
;
void
AddIndexBuffer
(
std
::
unique_ptr
<
class
IndexBuffer
>
ibuf
)
noexcept
;
void
AddIndexBuffer
(
std
::
unique_ptr
<
class
IndexBuffer
>
ibuf
)
noexcept
;
void
ExecuteBind
(
Graphics
&
gfx
,
Logger
&
logger
)
noexcept
;
void
ExecuteBind
(
Graphics
&
gfx
,
Logger
&
logger
)
noexcept
;
...
...
PracticeDx/Structs.h
View file @
b9789a92
#pragma once
#pragma once
// 用于定义顶点的结构,三维坐标
// 用于定义顶点的结构,三维坐标
struct
Struct
Tri
Vertex
struct
StructVertex
{
{
struct
struct
{
{
float
x
;
float
x
;
float
y
;
float
y
;
float
z
;
float
z
;
float
dummy
;
}
pos
;
};
// 用于定义顶点的结构,三维坐标
struct
StructBoxVertex
{
struct
{
float
x
;
float
y
;
float
z
;
float
r
;
float
g
;
float
b
;
}
pos
;
}
pos
;
};
};
...
...
PracticeDx/Triangle.cpp
View file @
b9789a92
...
@@ -11,36 +11,41 @@
...
@@ -11,36 +11,41 @@
#include "TransformCBuf.h"
#include "TransformCBuf.h"
#include "Graphics.h"
#include "Graphics.h"
Triangle
::
Triangle
(
Graphics
&
gfx
,
float
position
[][
4
],
float
r
,
float
g
,
float
b
,
Logger
&
logger
)
Triangle
::
Triangle
(
Graphics
&
gfx
,
float
position
[][
3
],
float
color
[][
3
],
Logger
&
logger
)
:
r
(
r
),
g
(
g
),
b
(
b
)
{
{
// Assign position values
// Assign position values
for
(
int
i
=
0
;
i
<
3
;
i
++
)
for
(
int
i
=
0
;
i
<
3
;
i
++
)
{
{
for
(
int
j
=
0
;
j
<
4
;
j
++
)
for
(
int
j
=
0
;
j
<
3
;
j
++
)
{
{
this
->
position
[
i
][
j
]
=
position
[
i
][
j
];
this
->
position
[
i
][
j
]
=
position
[
i
][
j
];
}
}
}
}
// Assign color values
for
(
int
i
=
0
;
i
<
1
;
i
++
)
{
for
(
int
j
=
0
;
j
<
3
;
j
++
)
{
this
->
color
[
i
][
j
]
=
color
[
i
][
j
];
}
}
/************************************
/************************************
* 2.3 DefineVertexBuffer
* 2.3 DefineVertexBuffer
************************************/
************************************/
const
std
::
vector
<
Struct
Tri
Vertex
>
vertices
=
const
std
::
vector
<
StructVertex
>
vertices
=
{
{
{
position
[
0
][
0
],
position
[
0
][
1
],
position
[
0
][
2
]
,
position
[
0
][
3
]
},
{
position
[
0
][
0
],
position
[
0
][
1
],
position
[
0
][
2
]
},
{
position
[
1
][
0
],
position
[
1
][
1
],
position
[
1
][
2
]
,
position
[
1
][
3
]
},
{
position
[
1
][
0
],
position
[
1
][
1
],
position
[
1
][
2
]
},
{
position
[
2
][
0
],
position
[
2
][
1
],
position
[
2
][
2
]
,
position
[
2
][
3
]
}
{
position
[
2
][
0
],
position
[
2
][
1
],
position
[
2
][
2
]
}
};
};
AddBind
(
std
::
make_unique
<
VertexBuffer
>
(
gfx
,
vertices
,
logger
));
AddBind
(
std
::
make_unique
<
VertexBuffer
>
(
gfx
,
vertices
,
logger
));
for
(
int
i
=
0
;
i
<
3
;
i
++
)
for
(
int
i
=
0
;
i
<
3
;
i
++
)
{
{
for
(
int
j
=
0
;
j
<
4
;
j
++
)
for
(
int
j
=
0
;
j
<
3
;
j
++
)
{
{
logger
.
PutLog
(
"Triangle::Triangle"
,
std
::
to_string
(
this
->
position
[
i
][
j
]));
logger
.
PutLog
(
"Triangle::Triangle"
,
std
::
to_string
(
this
->
position
[
i
][
j
]));
}
}
...
@@ -72,8 +77,7 @@ Triangle::Triangle(Graphics& gfx, float position[][4], float r, float g, float b
...
@@ -72,8 +77,7 @@ Triangle::Triangle(Graphics& gfx, float position[][4], float r, float g, float b
};*/
};*/
const
std
::
vector
<
unsigned
short
>
indices
=
const
std
::
vector
<
unsigned
short
>
indices
=
{
{
0
,
1
,
2
,
0
,
2
,
1
,
0
,
1
,
2
0
,
1
,
2
,
0
,
2
,
1
,
};
};
AddIndexBuffer
(
std
::
make_unique
<
IndexBuffer
>
(
gfx
,
indices
,
logger
));
AddIndexBuffer
(
std
::
make_unique
<
IndexBuffer
>
(
gfx
,
indices
,
logger
));
...
@@ -93,12 +97,7 @@ Triangle::Triangle(Graphics& gfx, float position[][4], float r, float g, float b
...
@@ -93,12 +97,7 @@ Triangle::Triangle(Graphics& gfx, float position[][4], float r, float g, float b
};*/
};*/
const
StructPixelConstBuf
cb2
=
const
StructPixelConstBuf
cb2
=
{
{
{
{
color
[
0
][
0
],
color
[
0
][
1
],
color
[
0
][
2
]
}
{
1.0
f
,
0.0
f
,
0.0
f
},
{
1.0
f
,
0.0
f
,
0.0
f
},
{
1.0
f
,
0.0
f
,
0.0
f
},
{
1.0
f
,
0.0
f
,
0.0
f
},
}
};
};
AddBind
(
std
::
make_unique
<
PixelConstantBuffer
<
StructPixelConstBuf
>>
(
gfx
,
cb2
));
AddBind
(
std
::
make_unique
<
PixelConstantBuffer
<
StructPixelConstBuf
>>
(
gfx
,
cb2
));
...
@@ -124,17 +123,20 @@ Triangle::Triangle(Graphics& gfx, float position[][4], float r, float g, float b
...
@@ -124,17 +123,20 @@ Triangle::Triangle(Graphics& gfx, float position[][4], float r, float g, float b
}
}
/*
void
Box
::Update(float dt) noexcept
void
Triangle
::
Update
(
float
dt
)
noexcept
{
{
roll += droll * dt;
/*
roll += droll * dt;
pitch += dpitch * dt;
pitch += dpitch * dt;
yaw += dyaw * dt;
yaw += dyaw * dt;
theta += dtheta * dt;
theta += dtheta * dt;
phi += dphi * dt;
phi += dphi * dt;
chi += dchi * dt;
chi += dchi * dt;*/
dx
=
dt
;
dy
=
dt
;
dz
=
dt
;
}
}
*/
DirectX
::
XMMATRIX
Triangle
::
GetTransformXM
()
const
noexcept
DirectX
::
XMMATRIX
Triangle
::
GetTransformXM
()
const
noexcept
{
{
...
@@ -143,5 +145,6 @@ DirectX::XMMATRIX Triangle::GetTransformXM() const noexcept
...
@@ -143,5 +145,6 @@ DirectX::XMMATRIX Triangle::GetTransformXM() const noexcept
DirectX::XMMatrixRotationRollPitchYaw(theta, phi, chi) *
DirectX::XMMatrixRotationRollPitchYaw(theta, phi, chi) *
DirectX::XMMatrixTranslation(0.0f, 0.0f, 20.0f);*/
DirectX::XMMatrixTranslation(0.0f, 0.0f, 20.0f);*/
return
return
DirectX
::
XMMatrixTranslation
(
0.0
f
,
0.0
f
,
4.0
f
);
DirectX
::
XMMatrixTranslation
(
0.0
f
,
0.0
f
,
4.0
f
)
*
DirectX
::
XMMatrixTranslation
(
dx
,
dy
,
dz
);
}
}
\ No newline at end of file
PracticeDx/Triangle.h
View file @
b9789a92
...
@@ -5,13 +5,16 @@
...
@@ -5,13 +5,16 @@
class
Triangle
:
public
Drawable
class
Triangle
:
public
Drawable
{
{
public:
public:
Triangle
(
Graphics
&
gfx
,
float
position
[][
4
],
float
r
,
float
g
,
float
b
,
Logger
&
logger
);
Triangle
(
Graphics
&
gfx
,
float
position
[][
3
],
float
color
[][
3
],
Logger
&
logger
);
void
Update
(
float
dt
)
noexcept
override
;
DirectX
::
XMMATRIX
GetTransformXM
()
const
noexcept
override
;
DirectX
::
XMMATRIX
GetTransformXM
()
const
noexcept
override
;
private:
private:
// positional
// positional
float
position
[
3
][
4
];
float
position
[
3
][
3
];
// color
// color
float
r
;
float
color
[
1
][
3
];
float
g
;
// trasformation
float
b
;
float
dx
=
0.0
f
;
float
dy
=
0.0
f
;
float
dz
=
0.0
f
;
};
};
\ No newline at end of file
PracticeDx/VertexBuffer.cpp
View file @
b9789a92
#pragma once
#pragma once
#include "VertexBuffer.h"
#include "VertexBuffer.h"
VertexBuffer
::
VertexBuffer
(
Graphics
&
gfx
,
const
std
::
vector
<
Struct
Tri
Vertex
>&
vertices
,
Logger
&
logger
)
VertexBuffer
::
VertexBuffer
(
Graphics
&
gfx
,
const
std
::
vector
<
StructVertex
>&
vertices
,
Logger
&
logger
)
:
:
stride
(
sizeof
(
Struct
Tri
Vertex
))
stride
(
sizeof
(
StructVertex
))
{
{
D3D11_BUFFER_DESC
bd
=
{};
D3D11_BUFFER_DESC
bd
=
{};
bd
.
BindFlags
=
D3D11_BIND_VERTEX_BUFFER
;
bd
.
BindFlags
=
D3D11_BIND_VERTEX_BUFFER
;
bd
.
Usage
=
D3D11_USAGE_DEFAULT
;
bd
.
Usage
=
D3D11_USAGE_DEFAULT
;
bd
.
CPUAccessFlags
=
0u
;
bd
.
CPUAccessFlags
=
0u
;
bd
.
MiscFlags
=
0u
;
bd
.
MiscFlags
=
0u
;
bd
.
ByteWidth
=
UINT
(
sizeof
(
Struct
Tri
Vertex
)
*
vertices
.
size
());
bd
.
ByteWidth
=
UINT
(
sizeof
(
StructVertex
)
*
vertices
.
size
());
bd
.
StructureByteStride
=
sizeof
(
Struct
Tri
Vertex
);
bd
.
StructureByteStride
=
sizeof
(
StructVertex
);
D3D11_SUBRESOURCE_DATA
sd
=
{};
D3D11_SUBRESOURCE_DATA
sd
=
{};
sd
.
pSysMem
=
vertices
.
data
();
sd
.
pSysMem
=
vertices
.
data
();
GetDevice
(
gfx
)
->
CreateBuffer
(
&
bd
,
&
sd
,
&
pVertexBuffer
);
GetDevice
(
gfx
)
->
CreateBuffer
(
&
bd
,
&
sd
,
&
pVertexBuffer
);
logger
.
PutLog
(
"VertexBuffer::VertexBuffer"
,
"size of vertices: "
+
std
::
to_string
(
vertices
.
size
()));
logger
.
PutLog
(
"VertexBuffer::VertexBuffer"
,
"size of vertices: "
+
std
::
to_string
(
vertices
.
size
()));
logger
.
PutLog
(
"VertexBuffer::VertexBuffer"
,
"size of StructTriVertex: "
+
std
::
to_string
(
sizeof
(
StructTriVertex
)));
logger
.
PutLog
(
"VertexBuffer::VertexBuffer"
,
"size of StructVertex: "
+
std
::
to_string
(
sizeof
(
StructVertex
)));
logger
.
PutLog
(
"VertexBuffer::VertexBuffer"
,
"ByteWidth: "
+
std
::
to_string
(
bd
.
ByteWidth
));
logger
.
PutLog
(
"VertexBuffer::VertexBuffer"
,
"StructureByteStride: "
+
std
::
to_string
(
bd
.
StructureByteStride
));
}
VertexBuffer
::
VertexBuffer
(
Graphics
&
gfx
,
const
std
::
vector
<
StructBoxVertex
>&
vertices
,
Logger
&
logger
)
:
stride
(
sizeof
(
StructBoxVertex
))
{
D3D11_BUFFER_DESC
bd
=
{};
bd
.
BindFlags
=
D3D11_BIND_VERTEX_BUFFER
;
bd
.
Usage
=
D3D11_USAGE_DEFAULT
;
bd
.
CPUAccessFlags
=
0u
;
bd
.
MiscFlags
=
0u
;
bd
.
ByteWidth
=
UINT
(
sizeof
(
StructBoxVertex
)
*
vertices
.
size
());
bd
.
StructureByteStride
=
sizeof
(
StructBoxVertex
);
D3D11_SUBRESOURCE_DATA
sd
=
{};
sd
.
pSysMem
=
vertices
.
data
();
GetDevice
(
gfx
)
->
CreateBuffer
(
&
bd
,
&
sd
,
&
pVertexBuffer
);
logger
.
PutLog
(
"VertexBuffer::VertexBuffer"
,
"size of vertices: "
+
std
::
to_string
(
vertices
.
size
()));
logger
.
PutLog
(
"VertexBuffer::VertexBuffer"
,
"size of StructBoxVertex: "
+
std
::
to_string
(
sizeof
(
StructBoxVertex
)));
logger
.
PutLog
(
"VertexBuffer::VertexBuffer"
,
"ByteWidth: "
+
std
::
to_string
(
bd
.
ByteWidth
));
logger
.
PutLog
(
"VertexBuffer::VertexBuffer"
,
"ByteWidth: "
+
std
::
to_string
(
bd
.
ByteWidth
));
logger
.
PutLog
(
"VertexBuffer::VertexBuffer"
,
"StructureByteStride: "
+
std
::
to_string
(
bd
.
StructureByteStride
));
logger
.
PutLog
(
"VertexBuffer::VertexBuffer"
,
"StructureByteStride: "
+
std
::
to_string
(
bd
.
StructureByteStride
));
}
}
...
...
PracticeDx/VertexBuffer.h
View file @
b9789a92
...
@@ -8,8 +8,7 @@
...
@@ -8,8 +8,7 @@
class
VertexBuffer
:
public
Bindable
class
VertexBuffer
:
public
Bindable
{
{
public:
public:
VertexBuffer
(
Graphics
&
gfx
,
const
std
::
vector
<
StructTriVertex
>&
vertices
,
Logger
&
logger
);
VertexBuffer
(
Graphics
&
gfx
,
const
std
::
vector
<
StructVertex
>&
vertices
,
Logger
&
logger
);
VertexBuffer
(
Graphics
&
gfx
,
const
std
::
vector
<
StructBoxVertex
>&
vertices
,
Logger
&
logger
);
void
Bind
(
Graphics
&
gfx
,
Logger
&
logger
)
noexcept
override
;
void
Bind
(
Graphics
&
gfx
,
Logger
&
logger
)
noexcept
override
;
protected:
protected:
...
...
PracticeDx/WinMain.cpp
View file @
b9789a92
...
@@ -26,6 +26,8 @@ Timer timer;
...
@@ -26,6 +26,8 @@ Timer timer;
Logger
logger
(
"log.txt"
);
Logger
logger
(
"log.txt"
);
#include <cmath>
/************************************
/************************************
* 1.1 CreateDeviceAndSwapChain
* 1.1 CreateDeviceAndSwapChain
************************************/
************************************/
...
@@ -689,37 +691,51 @@ int WINAPI WinMain(HINSTANCE hInstance,
...
@@ -689,37 +691,51 @@ int WINAPI WinMain(HINSTANCE hInstance,
Graphics
gfx
(
hWnd
);
Graphics
gfx
(
hWnd
);
gfx
.
SetProjection
(
DirectX
::
XMMatrixPerspectiveLH
(
1.0
f
,
3.0
f
/
4.0
f
,
0.5
f
,
40.0
f
));
gfx
.
SetProjection
(
DirectX
::
XMMatrixPerspectiveLH
(
1.0
f
,
3.0
f
/
4.0
f
,
0.5
f
,
40.0
f
));
float
triPos
[
3
][
4
]
=
float
triPos
[
3
][
3
]
=
{
{
{
0.0
f
,
1.0
f
,
0.0
f
,
0.0
f
},
{
0.0
f
,
1.0
f
,
-
1.1
f
},
{
1.0
f
,
-
1.0
f
,
0.0
f
,
0.0
f
},
{
1.0
f
,
-
1.0
f
,
-
1.1
f
},
{
-
1.0
f
,
-
1.0
f
,
0.0
f
,
0.0
f
}
{
-
1.0
f
,
-
1.0
f
,
-
1.1
f
}
};
};
Triangle
tri
(
gfx
,
triPos
,
1.0
f
,
1.0
f
,
1.0
f
,
logger
);
float
triCol
[
1
][
3
]
=
tri
.
ExecuteBind
(
gfx
,
logger
);
{
{
1.0
f
,
0.2
f
,
0.0
f
}
};
Triangle
tri
(
gfx
,
triPos
,
triCol
,
logger
);
float
boxPos
[
8
][
6
]
=
float
boxPos
[
8
][
3
]
=
{
{
// left bottom back
// left bottom back
{
-
1.0
f
,
-
1.0
f
,
-
1.0
f
,
1.0
f
,
0.0
f
,
0.0
f
},
{
-
1.0
f
,
-
1.0
f
,
-
1.0
f
},
// right bottom back
// right bottom back
{
1.0
f
,
-
1.0
f
,
-
1.0
f
,
0.0
f
,
1.0
f
,
0.0
f
},
{
1.0
f
,
-
1.0
f
,
-
1.0
f
},
// left top back
// left top back
{
-
1.0
f
,
1.0
f
,
-
1.0
f
,
0.0
f
,
0.0
f
,
1.0
f
},
{
-
1.0
f
,
1.0
f
,
-
1.0
f
},
// right top back
// right top back
{
1.0
f
,
1.0
f
,
-
1.0
f
,
1.0
f
,
1.0
f
,
0.0
f
},
{
1.0
f
,
1.0
f
,
-
1.0
f
},
// left bottom front
// left bottom front
{
-
1.0
f
,
-
1.0
f
,
1.0
f
,
1.0
f
,
0.0
f
,
1.0
f
},
{
-
1.0
f
,
-
1.0
f
,
1.0
f
},
// right bottom front
// right bottom front
{
1.0
f
,
-
1.0
f
,
1.0
f
,
0.0
f
,
1.0
f
,
1.0
f
},
{
1.0
f
,
-
1.0
f
,
1.0
f
},
// left top front
// left top front
{
-
1.0
f
,
1.0
f
,
1.0
f
,
0.0
f
,
0.0
f
,
0.0
f
},
{
-
1.0
f
,
1.0
f
,
1.0
f
},
// right top front
// right top front
{
1.0
f
,
1.0
f
,
1.0
f
,
1.0
f
,
1.0
f
,
1.0
f
},
{
1.0
f
,
1.0
f
,
1.0
f
},
};
};
Box
box
(
gfx
,
boxPos
,
1.0
f
,
1.0
f
,
1.0
f
,
logger
);
float
boxCol
[
6
][
3
]
=
box
.
ExecuteBind
(
gfx
,
logger
);
{
{
0.0
f
,
1.0
f
,
0.0
f
},
// Green
{
1.0
f
,
1.0
f
,
0.0
f
},
// Yellow
{
1.0
f
,
0.0
f
,
0.0
f
},
// Red
{
0.0
f
,
0.0
f
,
1.0
f
},
// Blue
{
0.0
f
,
1.0
f
,
1.0
f
},
// Cyan
{
1.0
f
,
0.0
f
,
1.0
f
},
// Magenta
};
Box
box
(
gfx
,
boxPos
,
boxCol
,
logger
);
long
seed
=
0
;
seed
=
seed
%
10000
;
// enter the main loop:
// enter the main loop:
...
@@ -747,8 +763,16 @@ int WINAPI WinMain(HINSTANCE hInstance,
...
@@ -747,8 +763,16 @@ int WINAPI WinMain(HINSTANCE hInstance,
{
{
//RenderFrame();
//RenderFrame();
gfx
.
RendorFrame
();
gfx
.
RendorFrame
();
seed
++
;
auto
dt
=
sin
(
seed
/
1000
);
box
.
Update
(
dt
);
//logger.PutLog("box.update", std::to_string(dt));
box
.
ExecuteBind
(
gfx
,
logger
);
box
.
ExecuteBind
(
gfx
,
logger
);
box
.
Draw
(
gfx
,
logger
);
box
.
Draw
(
gfx
,
logger
);
//tri.Update(dt);
tri
.
ExecuteBind
(
gfx
,
logger
);
tri
.
ExecuteBind
(
gfx
,
logger
);
tri
.
Draw
(
gfx
,
logger
);
tri
.
Draw
(
gfx
,
logger
);
gfx
.
EndFrame
();
gfx
.
EndFrame
();
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment