我想在屏幕上绘制很多的点,但是使用SetPixel()效率好低,有什么方法可以提高效率吗?不使用MFC!
形如:for(inti=0;i<1024;i++){for(intj=0;j<768;j++){SetPixel(hdc,i,j,RGB(0,255,0);}}意在绘制一...
形如:
for( int i = 0; i < 1024; i++)
{
for(int j = 0; j < 768; j++)
{
SetPixel(hdc, i, j, RGB(0, 255, 0);
}
}
意在绘制一张1024*768的绿色屏幕。但是绘制效率太低了,画一次需要3秒左右。
有什么方法可以将绘制效率提高到60Hz左右?
可以使用DirectDraw。
o(∩_∩)o 我的意图不是只想画一个绿色屏幕,而是如何提高这1024*768个点的绘制效率 展开
for( int i = 0; i < 1024; i++)
{
for(int j = 0; j < 768; j++)
{
SetPixel(hdc, i, j, RGB(0, 255, 0);
}
}
意在绘制一张1024*768的绿色屏幕。但是绘制效率太低了,画一次需要3秒左右。
有什么方法可以将绘制效率提高到60Hz左右?
可以使用DirectDraw。
o(∩_∩)o 我的意图不是只想画一个绿色屏幕,而是如何提高这1024*768个点的绘制效率 展开
5个回答
ZESTRON
2024-09-04 广告
2024-09-04 广告
表面污染分析包括评估表面上存在的颗粒、残留物或物质。通过利用显微镜、光谱学和色谱法等技术,分析人员可以识别和表征污染物,以确定其成分和来源。这种分析在电子、制药和制造等各个行业中至关重要,以确保产品质量、性能和安全性。了解表面污染有助于实施...
点击进入详情页
本回答由ZESTRON提供
推荐于2018-04-12
展开全部
画一个点
然后用
StretchBlt
把一个点放大到整个屏幕即可
然后用
StretchBlt
把一个点放大到整个屏幕即可
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果是一个矩形,可试试
RECT rect = {0, 0, 1024, 768};
::SetBkColor(hDC, RGB(0, 255, 0));
::ExtTextOut(hDC, 0, 0, ETO_OPAQUE, &rect, NULL, 0, NULL);
如果是其它可描绘的形状,采用FillPath
当然还可以使用GDI+
RECT rect = {0, 0, 1024, 768};
::SetBkColor(hDC, RGB(0, 255, 0));
::ExtTextOut(hDC, 0, 0, ETO_OPAQUE, &rect, NULL, 0, NULL);
如果是其它可描绘的形状,采用FillPath
当然还可以使用GDI+
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
aaa833后面的思路是对的,将其保存为一个数组,用openGL或DirectX都可以。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
建议使用DirectX
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询