??xml version="1.0" encoding="utf-8" standalone="yes"?>国产精品视频自拍,欧美一区精品,在线免费观看视频一区http://m.shnenglu.com/feixuwu/archive/2010/08/04/122227.htmlfeixuwufeixuwuWed, 04 Aug 2010 09:41:00 GMThttp://m.shnenglu.com/feixuwu/archive/2010/08/04/122227.htmlhttp://m.shnenglu.com/feixuwu/comments/122227.htmlhttp://m.shnenglu.com/feixuwu/archive/2010/08/04/122227.html#Feedback0http://m.shnenglu.com/feixuwu/comments/commentRss/122227.htmlhttp://m.shnenglu.com/feixuwu/services/trackbacks/122227.html支持中文pdf和中文txt,能正显CZ文目录?br>


问题

不过Q有的朋友反映打开大的pdf文gӞҎ(gu)L?br>q几天看?jin)下Q果然发现问题了(jin)?Z(jin)加快dpdf面速度Qbookr一开始就加蝲?jin)所有的pageTree到内存中Q?br>q样昄特定面的时候,无需查找该页面的PageObject?jin),q在PCZ一般没什么问题,PC机有虚拟内存Q即使pdf文g很大Q无非是加蝲pageTree慢点Q?br>不过在PSP上就不行?jin),PSP的内存是有限的,而且没有虚拟内存Q所以如果PageTree很大Q那么很可能?x)导致内存不够,直接L?jin)。。。?br>


解决办法

解决办法其实也很单,bookr启动的时候不加蝲PageTreeQ而是在每ơ显C的时候,从Root开始便利PageTree查询PageObject对象QQ意一时刻Q内存中只有一个PageObject对象?br>q样就基本解决?jin)内存问题。下一个问题是查询效率的问题,q个问题其实不那么严重,PageTree本来是一个树(wi)形结构,pdf的PageObject查询可以优化成一个树(wi)查询Q这样应该会(x)很快Q实际编码测试,
Ҏ(gu)感觉不到修改前后页速度有明昑֏化?br>修改后用 金庸全集三联?pdf(48.6M)试OK?br>

下蝲

  1、下载http://download.csdn.net/source/2578241  
      解压到psp/game目录下?br>  2、从http://m.shnenglu.com/Files/feixuwu/EBOOT.rar 下蝲Q解压后Q覆盖原来bookr目录下的EBOOT.PBP文g卛_?br>



feixuwu 2010-08-04 17:41 发表评论
]]>
PSP版本Bookr修改支持中文http://m.shnenglu.com/feixuwu/archive/2010/07/26/121324.htmlfeixuwufeixuwuMon, 26 Jul 2010 13:41:00 GMThttp://m.shnenglu.com/feixuwu/archive/2010/07/26/121324.htmlhttp://m.shnenglu.com/feixuwu/comments/121324.htmlhttp://m.shnenglu.com/feixuwu/archive/2010/07/26/121324.html#Feedback1http://m.shnenglu.com/feixuwu/comments/commentRss/121324.htmlhttp://m.shnenglu.com/feixuwu/services/trackbacks/121324.htmlq确实很让h不爽?br>q年前闲着没事Q顺便解决了(jin)bookr中文问题Q本文记录了(jin)那段旉的工作:(x)如何从官方版bookr修改Q解决pdf中文q问题Q支持txt中文、中文目录显C的问题Q抛砖引玉和大家分n下整个的思\
和问题的解决方式Q解册E比较丑陋,希望高手多多指点?br>貌似q里不能贴超q?M的附Ӟq里׃贴出修改后的bookr的发布文件了(jin)Q在PSP2000试通过Q最q也一直在?需要的同学可以email问我要?br>注:(x)已经上传到csdn:http://download.csdn.net/source/2578241
内置?jin)少量字体,大家可以自行扩展字体?br>


准备工作

  1、搭建PSP开发环境。sourceforge上集成的安装包,下蝲下来直接安装卛_Q这里不多说?jin)?br>  2、下载bookr源码Q我下蝲的是0.7.1版本。可以用SVN下蝲最新的Q也可以在sourceForge下蝲打包的源码包?br>

解决PDF中文问题

  bookr的代码结果很清晰Q由于是用c++开发的Q所以代码很好理解,BKLayer 是基的显C类QBKDocument是基的文处理类?br>bookr支持pdf、txt、html?PalmDoc(我没用过q种)Q分别由从BKDocument的派生类来处理?br>pdf是由BKPDF来处理的。解决pdf中文问题的关键就在BKPDFcM(jin)?br>

   1、如何调?/h2>        PSP开发首先遇到的问题是调试,PSPq不能实时调试,q确实是个问题。好在Bookr源码U支持了(jin)跨^収ͼ在windows下,使用Makefile.cygwin 可以编译一个windows版本
的Bookr?jin)。一般来_(d)在windows下bookrq行正常Q大致在PSP上的版本也是正常的,当然Q在l节上其实是有差别的。另外,q可以通过日志来实现跟t?br>

   2、解军_体问?/h2>       实际上,有些中文pdf用bookr打开时是正常的,比如Programming_In_Lua.pdf,但是在打开l常温习(fn)的金庸全集的时候,出Cؕ码了(jin)?br>注意到Bookr的pdf昄其实是主要是mudpf来实现的。那么bookr中文昄问题到底是bookr自n的还是mupdf的呢Q?br>Z(jin)认q个问题Q先从sourceforge下蝲mupdfQ徏立一个vs2005的项目,~译QOKQ可以运行了(jin)Q打开金庸全集一看,q是qQ这下基本可以确认,q个
问题是从mupdf存在了(jin)。要定位中文昄q的问题,自然需要了(jin)解pdf的内部格式,从adobe的官|下载了(jin)最新的pdf手册Q打开一看,一?00多页。。?br>好在我们不需要从头开始阅读,只要挑关键的地方看就可以?jin),中文问题一般是因ؓ(f)字体引v的?br>
所以我们可以直接挑Text的字体相关部分看?br>mupdf的字体加载在pdf_loadfont里,从pdf手册可知Qpdf支持?jin)若q种字体Q反正我是没什么耐心(j)看下去,直接打开金庸全集单步调试?jin)下Q?br> 发现问题在TrueType字体的加载里QTrueType字体的加载是loadsimplefont来处理的Q通过跟踪可知Q在获取字体的FontDescriptor的时候失败了(jin)Q然后就是用内置的默认字体来处理?jin)?br>默认字体都不支持中文Q所以自然就昄成ؕ码了(jin)?br>最单的办法是只要是TrueType字体Q不具体是什么字体,都强制从盘加蝲一U指定字体(例如黑体Q,当然Q这样会(x)D我们看到的pdf和实际应该显C的样子有差别,只有一U字体了(jin)?br>让我们先q样试试吧:(x)在发现pdf_loadfontdescriptor 加蝲p|后,强制用loadCustomFont 加蝲盘指定字体"font/simhei.ttf",q样字体加蝲的问题貌D决了(jin)?br>~译Q运行,发现q是有问题,q次的问题在文字~码?jin)?br>

   3、编码问?/h2>     一般显CZ正常的中文pdf都是GBK~码的,mupdf的显C是通过如下两个步骤来做的:(x)
   首先解码Q将文字内容全部转化成cidQ然后将要显C的cid全部pushC个队列,然后遍历cid,cid转化成gid(对trueType是转成unicode)Q接着昄?br>mupdf本n有一个比较优雅的办法来解码,通过pdf_lookupcmap来得到unicodeQ我用了(jin)比较W的办法Q自己暴力做GBK到unicode的{换?br>一般在windows和linux下都有库或者API来完成编码{换问题。不q在PSP下却没有q样的API,只好自己做一个编码{换了(jin)Q?br>在http://unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP936.TXT 扑ֈ?jin){换表Q复制粘贴到txt文本Q用lua脚本处理下,生成一?c文gQ分别将GBK和unicode值存储到2个数l里Q?br>现在你一定知道怎么转换?jin)?x)二分查找到指定GBK值在GBK数组的下标,然后直接在unicode数组用这个下标,可以得到对应的unicode倹{?br>~译试QOK?jin),l于能正常显CZ文了(jin)?br>不过到现在ؓ(f)止,整个面只有一U字体,要解册个问题,我们可以Ҏ(gu)名字匚w来找到指定的字体Q名字匹配不到的Q用默认的字体Q我是用的simsun.ttfQ?br>

 txt中文问题

   相对来说txt的中文问题比较好解决?jin),基本都是些常规开发,从FzFont.cpp代码可知Qtxt昄不了(jin)中文主要是字体加载的时候,只加载了(jin)前面?56个字形。那么我们只要做2件事情就可以昄中文?jin)?x)
  1、文字解码,现在大部分的txt?sh)子书都是gbk~码的,q样比较省空_(d)解码法前面已经提过?jin)?br>  2、中文文字纹理管理和效率问题。一般在PC游戏中,中文字体一般都是将多个q箋的汉字按照存储到一?4X64的纹理中Q这样可以节省显存,降低渲染Ҏ(gu)(3D菜鸟的简单推??br>不过如果在psp也这样做Q会(x)发现昄面是在太慢Q最后发玎ͼ最单的办法居然是每个汉字一个纹理,当然要实际用到的时候才生成该汉字纹理?br>  3、显C页分割。bookr阅读txt的时候,?x)自己将电(sh)子书分割成若干面Qƈ且支持书{֊能,因此Q不可避免的涉及(qing)到页面分割问题,引入中文昄后,q里E微有点不同Q要注意不能拆分一个汉字,
当然Q还有其他细节需要处理,q里不多说了(jin)?br>

目录中文问题

  必须承认Q这是我遇到的最痛苦的问题了(jin)Q原因是从API上就有问题了(jin)Q读取出来的目录名居然是Shift-jis~码的,谁让PSP是烦(ch)g的呢Q我试q将PSP的语a讄、时间等本地化设|改成中文、中国等?br>发现d到的目录名还是shift-jis~码。我先将目录名从shift-jis转回gb2312Q然后显C,l果发现很多汉字丢失Q因Zgb2312转到shift-jis的时候已l失真了(jin)Q{回来昄很多字体显CZ?jin)?jin)?br>看上去这个问题无法解决了(jin)Q其实不?dng)PSP的API提供?jin)打开记忆卡设备的功能Q这P我们自己做一个FAT32驱动Q叫驱动不合适,其实是自己dFAT32文gpȝ理文gQ就可以?jin),FAT32的文?br>到处都是Qlinux下也有vfat文gpȝ的实玎ͼ不过我偷懒了(jin)Q我直接从PMP Player的代码里拯?jin)FAT32相关文gQ直接移植过来,修改?jin)FzScreenPsp.cpp文g里目录相关的目录d函数Q?br>然后修改目录相关昄代码后,~码昄Q一切终于解决了(jin)。。?br>
 




feixuwu 2010-07-26 21:41 发表评论
]]>
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            þþþۺ| ޹˾þۺ| ŷպĻۺƵ| պҹ| պҹ׵Ӱ| ŷҹ77777| þþ| ҹƷ| ޼av| ŮëƬڵ| ƷŮվ| պŷƵһ| avһ| þƬҹӰ| ֻƵһ| ŷһ߹ۿ| ŷԴսþþþ| ۺ| ҹƷ| ŷһþ| һۺ| ҹav2018| һӰ߹ۿ| þþƷ99Ʒձ| þøѹۿ| ޹ŷպ| 99ƷƷëƬ| ũ帾ŮëƬƷþ԰| ŷһֱ| ŷdvdƵ| һ| Ʒ91| ҹ߹ۿ| ޹av| ŷպƵר߲| ŷһƬ߹ۿ| ޼߼| ɫav㽶һ| ޸Ƶѹۿ| ƷƵ| ŷˮ| ŷպ| ԽС13DD14ŷ| ԲƷƵ߿8ѯ8| þþžƵ| þþþùƷwww| ޾Ʒʿ| ӰԺ| ߲һ| ޾Ʒ͵Բ99| Ů޾Ʒ| ŷƷsuv| þþҾƷ| ۺպ| ŷwww| Ӱȷ| þùƷһ| ҹþþ| Ʒþþþþþapp| ޻ɫ| ޹Ʒƾþ| Ʒһ| ŷƵպ| ˺ݺɫۺ| ޸Ƶַ| ģƷһ| ҹҹavһ| ˳߲| ŷ| ŷvideohd| ŷպһ| 鶹Ʒվ| ޾ƷŮ| պƷƵһ| ɫػ| þۺϾɫۺϾ99| ޹Ʒ| ƷŮþþþþþ| þaaaaxxxx| ҹƵ߹ۿһ | þøӰ| Ƶŷ| Ʒվ| һƷ| þþþù˾Ʒҹ| רƷƵ| þһ| ޹ۺ߿| ޹һ| 91þþƷŮ߳| ¹͵ľƷ| ŷƷ߹ۿ| ŷרպר| Ʒһ㶮| ŷһ| ŷһ| ŷһƵƷۿ| ۺɫƵ| ŷ| þþŷһ| þþþþѨ| ˳վ߹ۿŷ| ŷ߻ɫ| ˾a߾Ʒ| Ʒ| ޸| ձĻ߲| ȳƵ| ߲| Ƶѹۿ| ŷ߹ۿ| һŷ߹ۿ| ҹ| ŷպר| һɫ| þþþþþһ| ޹Ʒþþ| þþƷ30| ŷĻһ| ձĻ| Ʒһ| þùձȾƷ| ߹ۿƵ| ŷ龫Ʒþþ| ޸| ޾ƷƵ߹ۿ| Ʒˬ| ŷƬ91| ģ˽Ƶһ| 99Ʒ| һ| ³³ݺݺ7777һ| ëƬһ| þþƷһþ99Ʒ| Ʒһ| һ߹ۿ| ŷ| ŷ˾Ʒ߹ۿ| þӰԺ| ƷƵַ| һŷ߹ۿ| һŷ| ŷСƵ| ޵һƵվ| ޹Ƶ߹ۿ| þþƷۺϾƷ| þһ| ޵Ӱav| Ѿþ99Ʒ| ŷ޳| ҹƷ| ŷþþxxx| ѾƵ| ҹŷӰ߹ۿ| ޾ƷŮþ7777777| պ| ŮƵһ| ŷ1819ͽ| 鶹Ʒһۺav | ѾƷ99þùۺϾƷ| ŷպۺһ߹ۿ| ҹƷþþ| ѳ˻ɫav| պһƬ| Ʒþþþþþþþþþþþ | þƵ| ޹ŷۺ997þ| ŷȷ| ҹӰ| ˵| һþۺ³³| ŷպƵ߹ۿ| þֻоƷ| һŷ| þˬ| պŷ| Ʒ츣| ŷƵ| ŮСƵ߹ۿ| ŷƬ߹ۿ| ҹƷþþþþþ99˳| ߿Ƭŷ| ƷŮ߹ۿ| þþùƷһ | þþƷƷۺ| 91þùƷ91þɫ| ŷһ| ޾ƷĻ| ŮƷ| ŷպۺϾþ| þùƷһ| ޾ƷŷƷ| þۺƵӰԺ| ˾þۺ| պĻ߲| ҹƷȫƵ| ŷպһ߹ۿ | **ҹëƬһ| ҹһ99reþ | ߹ۿպwwwƵ|