Commit db7a5eb3 authored by Administrator's avatar Administrator
Browse files

added lines and rectangle as drawable; added shader by fixed color; used...

added lines and rectangle as drawable; added shader by fixed color; used template for VertexBuffer; added icon for app
parent 8b194540
#pragma once
#include "VertexBuffer.h"
VertexBuffer::VertexBuffer(Graphics& gfx, const std::vector<StructVertex>& vertices, Logger& logger)
:
stride(sizeof(StructVertex))
{
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(StructVertex) * vertices.size());
bd.StructureByteStride = sizeof(StructVertex);
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 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<StructVertex>& vertices, Logger& logger)
// :
// stride(sizeof(StructVertex))
//{
// 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(StructVertex) * vertices.size());
// bd.StructureByteStride = sizeof(StructVertex);
// 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 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));
//}
void VertexBuffer::Bind(Graphics& gfx, Logger& logger) noexcept
{
......
......@@ -8,7 +8,27 @@
class VertexBuffer : public Bindable
{
public:
VertexBuffer(Graphics& gfx, const std::vector<StructVertex>& vertices, Logger& logger);
template<class V>
VertexBuffer(Graphics& gfx, const std::vector<V>& vertices, Logger& logger)
:
stride(sizeof(V))
{
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(V) * vertices.size());
bd.StructureByteStride = sizeof(V);
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 StructVertex: " + std::to_string(sizeof(V)));
logger.PutLog("VertexBuffer::VertexBuffer", "ByteWidth: " + std::to_string(bd.ByteWidth));
logger.PutLog("VertexBuffer::VertexBuffer", "StructureByteStride: " + std::to_string(bd.StructureByteStride));
};
void Bind(Graphics& gfx, Logger& logger) noexcept override;
protected:
......
......@@ -2,6 +2,7 @@
#include "Ground.h"
#include "Stage.h"
#include "imgui/imgui.h"
#include "resource.h"
Mouse Window::mouse;
......@@ -21,6 +22,8 @@ Window::Window(HWND& hWnd, HINSTANCE& hInstance, int nCmdShow, int x, int y, Log
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH)COLOR_WINDOW;
wc.lpszClassName = "WindowClass";
wc.hIcon = static_cast<HICON>(LoadImage(hInstance, MAKEINTRESOURCE(IDI_ICON1), IMAGE_ICON, 64, 64, 0));
wc.hIconSm = static_cast<HICON>(LoadImage(hInstance, MAKEINTRESOURCE(IDI_ICON1), IMAGE_ICON, 16, 16, 0));
// register the window class
RegisterClassEx(&wc);
......
//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ generated include file.
// Used by PracticeDx.rc
//
#define IDI_ICON1 101
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 102
#define _APS_NEXT_COMMAND_VALUE 40001
#define _APS_NEXT_CONTROL_VALUE 1001
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment