D3D 符合基本程序

#pragma once#pragma comment(lib,"d3d9.lib")
#pragma comment(lib,"d3dx9.lib")#include<d3d9.h>
#include<d3dx9.h>//TODO: -1 custom vertex
struct CUSTOMVERTEX
{float x;float y;float z;float rhw;
};#define D3DFVF_CUSTOMVERTEX D3DFVF_XYZRHWHRESULT InitD3D(HWND hWnd);
void CleanUp();
void Render();
LRESULT CALLBACK MsgProc(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam);
HRESULT InitD3DVertexBuffer();//TODO: 0 declare d3d variables.
LPDIRECT3D9 g_pd3d = NULL;
LPDIRECT3DDEVICE9 g_pd3dDevice9 = NULL;
LPDIRECT3DVERTEXBUFFER9 g_pd3dVB = NULL;//application entry point.
INT WINAPI wWinMain(HINSTANCE,HINSTANCE,LPWSTR,INT)
{//initialize wnd class.WNDCLASSEX wcex;ZeroMemory(&wcex,sizeof(wcex));wcex.cbSize=sizeof(wcex);wcex.hInstance=GetModuleHandle(NULL);wcex.lpfnWndProc=MsgProc;wcex.lpszClassName=L"Self001";wcex.style=CS_CLASSDC;//register wnd class.RegisterClassEx(&wcex);//create window.HWND hWnd=CreateWindowEx(WS_EX_OVERLAPPEDWINDOW,L"Self001",L"Self001 Window",WS_OVERLAPPEDWINDOW,100,100,300,300,NULL,NULL,wcex.hInstance,NULL);//init d3dif(SUCCEEDED(InitD3D(hWnd))){//show window.ShowWindow(hWnd,SW_SHOWDEFAULT);UpdateWindow(hWnd);//message loop.MSG msg;ZeroMemory(&msg,sizeof(msg));while(msg.message != WM_QUIT){if(PeekMessage(&msg,hWnd,0,0,PM_REMOVE)){TranslateMessage(&msg);DispatchMessage(&msg);}else{Render();}}}//unregister wnd class.UnregisterClass(L"Self001",wcex.hInstance);return 0;
}//init d3d.
HRESULT InitD3D(HWND hWnd)
{//create d3d.g_pd3d=Direct3DCreate9(D3D_SDK_VERSION);if(g_pd3d == NULL){return E_FAIL;}//initialize d3d present parameters.D3DPRESENT_PARAMETERS d3dpp;ZeroMemory(&d3dpp,sizeof(d3dpp));d3dpp.Windowed=TRUE;d3dpp.SwapEffect=D3DSWAPEFFECT_DISCARD;d3dpp.BackBufferFormat=D3DFMT_UNKNOWN;//create d3d device.if(FAILED(g_pd3d->CreateDevice(D3DADAPTER_DEFAULT,D3DDEVTYPE_HAL,hWnd,D3DCREATE_SOFTWARE_VERTEXPROCESSING,&d3dpp,&g_pd3dDevice9))){return E_FAIL;}//init vertex buffer.if(FAILED(InitD3DVertexBuffer())){return E_FAIL;}return S_OK;
}//clean up d3d.
void CleanUp()
{//TODO: 3 clean up d3d.if(g_pd3dVB != NULL){g_pd3dVB->Release();}//release device.if(g_pd3dDevice9 != NULL){g_pd3dDevice9->Release();}//release d3d.if(g_pd3d != NULL){g_pd3d->Release();}
}//render the scene.
void Render()
{//clear target.g_pd3dDevice9->Clear(0,NULL,D3DCLEAR_TARGET,D3DCOLOR_XRGB(0,0,0),1.0f,0);//draw primitive.if(SUCCEEDED(g_pd3dDevice9->BeginScene())){//TODO: 2 render d3d.g_pd3dDevice9->SetStreamSource(0,g_pd3dVB,0,sizeof(CUSTOMVERTEX));g_pd3dDevice9->SetFVF(D3DFVF_CUSTOMVERTEX);g_pd3dDevice9->DrawPrimitive(D3DPT_LINESTRIP,0,3);g_pd3dDevice9->EndScene();}//present sence.g_pd3dDevice9->Present(NULL,NULL,NULL,NULL);
}//window message handler.
LRESULT CALLBACK MsgProc(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam)
{switch(msg){case WM_DESTROY:CleanUp();return 0L;}return DefWindowProc(hWnd,msg,wParam,lParam);
}//init d3d vertex buffer.
HRESULT InitD3DVertexBuffer()
{//TODO: 1 init vertex buffer data.//create vertex data.CUSTOMVERTEX vertices[4]={{50.0f,50.0f,1.0f,1.0f},{50.0f,250.0f,1.0f,1.0f},{250.0f,50.0f,1.0f,1.0f},{250.0f,250.0f,1.0f,1.0f}};//create vertex buffer.if(FAILED(g_pd3dDevice9->CreateVertexBuffer(sizeof(vertices),0,D3DFVF_CUSTOMVERTEX,D3DPOOL_DEFAULT,&g_pd3dVB,NULL))){return E_FAIL;}//fill vertex buffer.void* pVertices=NULL;if(FAILED(g_pd3dVB->Lock(0,sizeof(vertices),&pVertices,0))){return E_FAIL;}memcpy(pVertices,vertices,sizeof(vertices));g_pd3dVB->Unlock();return S_OK;
}

程序结果

版权声明:本文博客原创文章,博客,未经同意,不得转载。

D3D 扎带 小样本相关推荐

  1. 常用语义分割小样本模型

    常用语义分割小样本模型 1.介绍 深度卷积神经网络在图像分类.目标检测.语义分割等许多视觉理解任务上都取得了重大突破.一个关键的原因是大规模数据集的可用性,比如ImageNet,这些数据集支持对深度模 ...

  2. D3D中简单的截图方法 (转)

    [ZT]D3D中简单的截图方法 试了下,果然可以. 在渲染完所有东东后(Present之前) 获得BackBuffer表面 然后用D3DX的函数保存 void ScreenShot (char *fi ...

  3. MAML-Tracker:用目标检测思路做目标跟踪?小样本即可得高准确率丨CVPR 2020

    来源 | 微软研究院AI头条(ID: MSRAsia) 编者按:目标检测与目标跟踪这两个任务有着密切的联系.针对目标跟踪任务,微软亚洲研究院提出了一种通过目标检测技术来解决的新视角,采用简洁.统一而高 ...

  4. ICCV 2021 | 简而优:用分类器变换器进行小样本语义分割

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者 | 卢治合 编辑 | 王晔 本文是对发表于计算机视觉领域的顶级 ...

  5. 基于深度卷积神经网络的小样本分割算法综述

    ↑ 点击蓝字 关注视学算法 来源丨AI算法修炼营 编辑丨极市平台 介绍 深度卷积神经网络在图像分类.目标检测.语义分割等许多视觉理解任务上都取得了重大突破.一个关键的原因是大规模数据集的可用性,比如 ...

  6. ICML2020 | 基于贝叶斯元学习在关系图上进行小样本关系抽取

    今天给大家介绍来自加拿大蒙特利尔大学Mila人工智能研究所唐建教授课题组在ICML2020上发表的一篇关于关系抽取的文章.作者利用全局关系图来研究不同句子之间的新关系,并提出了一种新的贝叶斯元学习方法 ...

  7. 《预训练周刊》第25期:HyperCLOVA:数十亿级韩语生成式预训练变换器、GPT-3在生物医学领域不是好的小样本学习器...

    No.25 智源社区 预训练组 预 训 练 研究 观点 资源 活动 关于周刊 超大规模预训练模型是当前人工智能领域研究的热点,为了帮助研究与工程人员了解这一领域的进展和资讯,智源社区整理了第25期&l ...

  8. 《预训练周刊》第21期:FlipDA:有效且稳健的数据增强小样本学习、开放域低资源适应的生成式聊天机器人...

    No.21 智源社区 预训练组 预 训 练 研究 观点 资源 活动 关于周刊 超大规模预训练模型是当前人工智能领域研究的热点,为了帮助研究与工程人员了解这一领域的进展和资讯,智源社区整理了第21期&l ...

  9. 【小样本学习】什么是小样本学习?这篇综述文章用166篇参考文献告诉你答案...

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 来源:机器之心 再次编辑:夕小瑶的卖萌屋 什么是小样本学习?它与弱监督学习等问题有何差 ...

  10. ICLR 2021 | 基于自监督学习的小样本分类,代码已开源

    作者 | 张曼黎 编辑 | 陈大鑫 深度神经网络往往要求为每个新任务收集大量标记训练数据,实用性也因此受到限制.给定来自一组源任务的数据,有两种迁移学习方法可以克服这种限制:小样本学习 (FSL) 和 ...

最新文章

  1. mysql 7.4_CentOS 7.4 64位/ mysql
  2. DB2锁表或超时解决方案
  3. CloudStack各版本新特性
  4. hdu 4676 Sum Of Gcd 莫队+phi反演
  5. shell如何控制文件读写不同时_如何定时备份Mysql数据库数据?
  6. excel获取mysql数据库数据类型_js如何读取excel数据库数据库数据类型
  7. 3D坦克大战游戏源码
  8. Oracle推出支援.NET 3.5与Visual Studio 2008的开发工具
  9. 使用友元,编译出错fatal error C1001: INTERNAL COMPILER ERROR (compiler file 'msc1.cpp', line 1786) 的解决...
  10. 机器学习中各科目基本概念集合
  11. Kafka副本同步机制理解
  12. 新浪短网址和百度短网址那个好?
  13. python时间计算天数差
  14. 巴拿赫空间的基本性质
  15. 【vue3仿网易云音乐app】歌单列表以及歌单界面
  16. python+scrapy爬取斗鱼图片
  17. amd服务器主板文件,AMD服务器主板全攻略--Opteron篇
  18. 数据治理-1. 数据集成-总体方案
  19. 会声会影2020Corel Video Studio视频制作剪辑软件下载 V2020 23.0.1 中文直装免费版
  20. 洗衣机控制器(FPGA)

热门文章

  1. ad16自动布线设置规则_未来的PCB协同设计制造过程离不开自动化工具
  2. wpf分页预览html文件,用WPF实现打印及打印预览
  3. [EMNLP2017]Global Normalization of Convolutional Neural Networks for Joint Entity and Relation(阅读笔记)
  4. 互联网轻量级框架SSM-查缺补漏第八天(MyBatis插件plugin使用及原理)
  5. SQL Server 2017 AlwaysOn AG 自动初始化(九)
  6. Jfinal的七牛云存储插件:qiniuPlugin for jfinal.
  7. KendoUI和wijmoUI 它们的Grid比较 20120423
  8. Tips for ASP.NET Application Performance Enhancement
  9. android studio文件读写,Android 中的文件读写操作
  10. mysql 导出中间 数据_mysql导出数据库几种方法