Lemon-XQ 2016-04-21 14:26 采纳率: 50%
浏览 1241

关于TC平台下横线优化算法的疑惑~~~TAT大神们帮帮我

以下是代码,原作者是想通过以字而不是字节copy数据到显存,从而实现更快地画一条
横线,但是我看不太懂他的代码TAT。。为什么第一点为奇数,就只填写后一点,最后
一点为奇数,就两点都填写?还有就是这里的“填写后一点”里的“一点”是什么意思、啊,好像不是屏幕上的一点啊。。。
困扰我好多天了,希望有人能解救一下我呜呜呜。。。
void HLine_Fast(int x1,int x2,int y,unsigned int color)
{
unsigned int first_word,middle_word,last_word,line_offset,index;
unsigned int far * video_buffer_w=(unsigned int far )video_buffer;/字变量*/
if((x1&0x0001))
first_word=(color< else
first_word=((color if((x2&0x0001))
last_word=((color else
last_word=color; /*最后一点为偶数,整除,只填写前一点*/
/*处理直线最前面和最后面那两个无法整除的字节*/
line_offset=((y middle_word=((color /*以下以字为单位copy数据到显存*/
video_buffer_w[line_offset+(x1>>1)]=first_word; /*画线首*/
for(index=(x1>>1)+1;index<(x2>>1);index++)/*以字为单位循环画线中部*/
video_buffer_w[line_offset+index]=middle_word;
video_buffer_w[line_offset+(x2>>1)]=last_word;/*画线尾 */
}

  • 写回答

1条回答

  • devmiao 2016-04-21 14:42
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 有没有帮写代码做实验仿真的
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥30 vmware exsi重置后登不上
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题
  • ¥20 yolov5自定义Prune报错,如何解决?