fishbrid

fishbrid

0个粉丝

13

问答

0

专栏

1

资料

fishbrid  发布于  2017-11-01 15:57:19
采纳率 0%
13个问答
9935

QT4.8.6 实现TDE加速

 
已实现QT4.8.6 实现TDE硬件加速,有需要的朋友可联系。
我来回答
回答27个
时间排序
认可量排序

CallMeBroYang

1个粉丝

7

问答

0

专栏

0

资料

CallMeBroYang 2017-11-02 11:13:56
认可0
做到什么程度,可以说明一下吗

fengzheng822

0个粉丝

5

问答

0

专栏

0

资料

fengzheng822 2017-12-11 09:18:52
认可0
同问????????,还有如何获取

做个好菜鸟

0个粉丝

13

问答

0

专栏

0

资料

做个好菜鸟 2017-12-11 17:50:29
认可0
您好,请问您是怎么将tde中的像素格式更改为8888的呢??我现在像素1555的是正常的,但是由于QT支持像素格式为8888,现在想要将sample中sample_tde改为8888像素格式的,请问sample_tde里面都要改哪些部分呢?还有就是您的8888格式的.bits文件是怎么生成的呢?是自己编程提取的吗??

fishbrid

0个粉丝

13

问答

0

专栏

1

资料

fishbrid 2017-12-12 19:02:36
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=81961&ptid=38131]做个好菜鸟 发表于 2017-12-11 17:50[/url]
您好,请问您是怎么将tde中的像素格式更改为8888的呢??我现在像素1555的是正常的,但是由于QT支持像素格式为8 ...[/quote]

qt支持1555,我使用的也是1555

做个好菜鸟

0个粉丝

13

问答

0

专栏

0

资料

做个好菜鸟 2017-12-13 18:39:13
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=82020&ptid=38131]fishbrid 发表于 2017-12-12 19:02[/url]
qt支持1555,我使用的也是1555[/quote]

您好,我更改为1555之后,是没有qt界面输出的,这是我改了的部分:
var.transp = {15,1,0};
    var.red = {10,5,0};
    var.green = {5,5,0};
    var.blue = {0,5,0};
    var.bits_per_pixel = 16;
您看还有什么地方要改吗??

fishbrid

0个粉丝

13

问答

0

专栏

1

资料

fishbrid 2017-12-23 16:49:29
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=82071&ptid=38131]做个好菜鸟 发表于 2017-12-13 18:39[/url]
您好,我更改为1555之后,是没有qt界面输出的,这是我改了的部分:
var.transp = {15,1,0};
    var.red  ...[/quote]

还需要设置HIFB_ALPHA_S stAlpha;
stAlpha.bAlphaEnable = HI_TRUE;
    stAlpha.bAlphaChannel = HI_FALSE;
    stAlpha.u8Alpha0 = 0xFF;
    stAlpha.u8Alpha1 = 0x00;
    stAlpha.u8GlobalAlpha = 0xFF;
设置COLORKEY
HIFB_COLORKEY_S fbck;
    memset(&fbck, 0, sizeof(HIFB_COLORKEY_S));
    fbck.bKeyEnable = HI_TRUE;
    fbck.u32Key = 0x000000;
作用是不显示黑色,QT界面设置背景QColor(0,0,0,0)后可透明

做个好菜鸟

0个粉丝

13

问答

0

专栏

0

资料

做个好菜鸟 2017-12-28 10:44:46
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=82479&ptid=38131]fishbrid 发表于 2017-12-23 16:49[/url]
还需要设置HIFB_ALPHA_S stAlpha;
stAlpha.bAlphaEnable = HI_TRUE;
    stAlpha.bAlphaChannel = HI_ ...[/quote]

谢谢,不过我用的板子是3531,3531只有鼠标层采用colorkey,我现在把海思tde 例程和.bits文件都改成8888格式的了。

MiSign

0个粉丝

8

问答

0

专栏

0

资料

MiSign 2018-01-04 15:48:26
认可0
加速做什么?抗闪吗?

yukuilong

0个粉丝

23

问答

0

专栏

0

资料

yukuilong 2018-01-26 17:01:48
认可0
怎么联系你 可否留个qq

hysx

0个粉丝

0

问答

0

专栏

0

资料

hysx 2018-03-06 21:54:04
认可0
想学习下,共享代码么?

ian688t6

0个粉丝

5

问答

0

专栏

0

资料

ian688t6 2018-06-13 21:24:55
认可0
有联系方式么?我想学习学习

hero

0个粉丝

1

问答

0

专栏

0

资料

hero 2018-07-02 09:21:14
认可0
学习学习学习学习

fishbrid

0个粉丝

13

问答

0

专栏

1

资料

fishbrid 2018-07-05 15:50:49
认可0
海思平台以插件方式使用Graphics Driver方法移植QT4.8.6
[url]http://bbs.ebaina.com/forum.php?mod=viewthread&tid=38541&fromuid=13827[/url]
可参考这里实现

rupert

0个粉丝

1

问答

0

专栏

0

资料

rupert 2018-07-06 14:34:11
认可0

学习学习学习学习

ansonboygirl

0个粉丝

0

问答

0

专栏

0

资料

ansonboygirl 2018-08-01 13:52:01
认可0
能分享么?有偿

1669877854

0个粉丝

4

问答

0

专栏

0

资料

1669877854 2018-10-03 16:16:26
认可0
66666666666666

ansonboygirl

0个粉丝

0

问答

0

专栏

0

资料

ansonboygirl 2018-11-22 14:30:35
认可0


void QHiSiliconV100nptlScreen::blit(const QImage &img, const QPoint &topLeft,
                         const QRegion ®)
{
        int w                                         = ALIGN_BACK(img.width(), 2);
        int h                                         = ALIGN_BACK(img.height(), 2);
        unsigned long phyaddr         = 0;
        HI_U32 phyaddr1                 = 0;
       
        if(!img.text("phyaddr").isEmpty())
        {
                phyaddr1 = img.text("phyaddr").toUInt();
        }
        else
        {
                qDebug()<<"blit phyaddr isEmpty";
                //QScreen::blit(img, topLeft, reg);
                return;
        }
       
        if (base()&&u8VirAddr&&(w >= 1)&&(h >= 1))
        {
                printf("blit: img.w = %d, img.h = %d, strip = %d, w = %d, h = %d\n", img.width(),img.height(),img.bytesPerLine(), w, h);
            HI_U32 i;
                TDE_HANDLE s32Handle;
            TDE2_OPT_S stOpt;
            TDE2_RECT_S stSrcRect;
            TDE2_RECT_S stDstRect;
                HI_S32 s32Ret = HI_SUCCESS;

            s32Handle = HI_TDE2_BeginJob();
            if(HI_ERR_TDE_INVALID_HANDLE == s32Handle)
            {
                qDebug()<<"start job failed!\n";
                return;
            }

                memset(&srcscreen, 0, sizeof(srcscreen));
                memset(&dstscreen, 0, sizeof(dstscreen));
                memset(&stSrcRect, 0, sizeof(stSrcRect));
                memset(&stDstRect, 0, sizeof(stDstRect));
                memset(&stOpt, 0, sizeof(stOpt));
               
                const QVector rects = (reg & region()).rects();
                   for (int i = 0; i < rects.size(); ++i)
                {
                        const QRect r                                = rects.at(i);
                        stSrcRect.s32Xpos                           = r.x() - topLeft.x();
                        stSrcRect.s32Ypos                           = r.y() - topLeft.y();
                        stSrcRect.u32Width                           = r.width() > w ? w : r.width();
                        stSrcRect.u32Height                           = r.height() > h ? h : r.height();

                        srcscreen.enColorFmt                 = TDE2_COLOR_FMT_ARGB8888;
                        srcscreen.u32Width                         = w;
                        srcscreen.u32Height                 = h;
                        srcscreen.u32Stride                 = img.bytesPerLine();
                        srcscreen.u32PhyAddr                = phyaddr1;
                        srcscreen.bAlphaMax255                 = HI_TRUE;
                       
                    stDstRect.s32Xpos                         = r.x();
                    stDstRect.s32Ypos                         = r.y();
                    stDstRect.u32Width                         = r.width();
                    stDstRect.u32Height                 = r.height();
                       
                        dstscreen.enColorFmt                  = TDE2_COLOR_FMT_ARGB8888;
                        dstscreen.u32PhyAddr                  = finfo.smem_start;
                        dstscreen.u32Width                          = 1920;
                        dstscreen.u32Height                          = 1080;
                        dstscreen.u32Stride                          = finfo.line_length;
                        dstscreen.bAlphaMax255          = HI_TRUE;
                        /*
                        printf("srcscreen[%d, %d, %d, %d][%d, %d], dstscreen[%d, %d, %d, %d][%d, %d], top[%d, %d] \n",
                                stSrcRect.s32Xpos,
                                stSrcRect.s32Ypos,
                                stSrcRect.u32Width,
                                stSrcRect.u32Height,
                                srcscreen.u32Width,
                                srcscreen.u32Height,
                                stDstRect.s32Xpos,
                                stDstRect.s32Ypos,
                                stDstRect.u32Width,
                                stDstRect.u32Height,
                                dstscreen.u32Width,
                                dstscreen.u32Height,
                                topLeft.x(),
                                topLeft.y()
                                );
                        */
                        //memcpy(u8VirAddr, img.bits(), img.height()*img.bytesPerLine());
                       
                    /* 4. bitblt image to screen */
                    s32Ret = HI_TDE2_Bitblit
                                            (
                                                    s32Handle,
                                                    &dstscreen,
                                                    &stDstRect,
                                                &srcscreen,
                                                &stSrcRect,
                                                &dstscreen,
                                                &stDstRect,
                                                &stOpt
                                        );
                        if(s32Ret < 0)
                        {
                                  qDebug("HI_TDE2_Bitblit failed,ret = %x\n",s32Ret);
                                HI_TDE2_CancelJob(s32Handle);
                                return ;
                        }
                       
                }

            /* 5. submit job */
            s32Ret = HI_TDE2_EndJob(s32Handle, HI_FALSE, HI_TRUE, 30);
                if(s32Ret < 0)
                {
                        qDebug()<<"HI_TDE2_EndJob failed,ret = \n"<                         HI_TDE2_CancelJob(s32Handle);
                        return;
                }
        }
        else
        {
                //QScreen::blit(img, topLeft, reg);
        }
       
}

raymondxl

0个粉丝

1

问答

0

专栏

0

资料

raymondxl 2019-02-17 19:40:51
认可0
你好,你的TDE是在QT程序中实现的吗

qn1532483710

0个粉丝

1

问答

0

专栏

0

资料

qn1532483710 2019-04-09 11:02:40
认可0
你好请问可否提供下相关代码呢,有偿

guduxue0624

0个粉丝

2

问答

0

专栏

0

资料

guduxue0624 2019-11-29 09:12:45
认可0
楼主有联系方式吗?求分享。
加载中···
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区