在devkit pro中,在图像上显示文本时,屏幕顶部出现垃圾
Garbage on top of screen when displaying text over image in devkit pro
我目前正在使用16位libnds(Whith-devkitpro)示例作为基础,并试图在同一屏幕上显示文本和png背景图像(在本示例中,它是顶部sceen)。我有一个与这篇文章类似的问题。
屏幕顶部有垃圾(仅当调用consoleInit(...)
时),类似于线程中的第一个问题。唯一的问题是,我用不同的方法显示背景图像,所以他们在该线程中所做的修复不适用于此。
我只想知道是否有办法修复屏幕顶部的垃圾。如果有一种更有效/更好的方式来显示图像,我愿意接受,只是我还没有找到一个足够详细的教程,说明如何在不使用这种方法的情况下加载图像作为背景。如有任何帮助,我们将不胜感激。我会回答任何人关于什么不起作用的进一步问题。
你可以在这里找到附加的项目。
很抱歉延迟太久,但您的代码有一些问题。第一个是,在模式4中,唯一可以设置为16位位图的背景是第3层。http://answers.drunkencoders.com/what-graphics-modes-does-the-ds-support/
接下来,所有层都共享一块背景内存,而您的垃圾来自于用字体字符和控制台背景地图覆盖视频内存中的位图部分。一个简单的解决方案是通过将位图的贴图基础设置为1来移动位图。这将其图形内存偏移16KB,为文本层留出16KB的空间(这只是因为我们不能同时在屏幕上显示整个256x256图像,因为256x256x2字节的DS的分辨率填满了所有的内存组A……为了更正确,我们应该将另一个内存组分配给主背景……但由于我们无论如何都看不到图像的底部70行左右的像素,它们没有完全进入视频内存也没关系)。
libnds还有一个名为"bgGetGfxPtr(id)"的宏,可以让为背景查找内存变得更简单,它将在您设置后在视频内存中获得一个指向背景gfx的指针,这样您就不必试图通过BG_gfx的偏移量来计算它。
在所有对代码的更改中,应该是这样的(我在以下位置向libnds代码faq添加了一个版本:http://answers.drunkencoders.com/wp-admin/post.php?post=289&action=edit&消息=1)
int main(void) {
//Top screen pic init
videoSetMode(MODE_4_2D);
vramSetBankA(VRAM_A_MAIN_BG);
int bg = bgInit(3, BgType_Bmp16, BgSize_B16_256x256, 1,0);
decompress(drunkenlogoBitmap, bgGetGfxPtr(bg), LZ77Vram); //Displays/decompresses top image
//videoSetMode(MODE_4_2D);
consoleInit(0,0, BgType_Text4bpp, BgSize_T_256x256, 4,0, true, true);
iprintf("x1b[1;1HThe garbage is up here ^^^^^.");
iprintf("x1b[21;1HTesting the text function...");
while(1) {
swiWaitForVBlank();
scanKeys();
if (keysDown()&KEY_START) break;
}
return 0;
}
- UE4-如何在给定4个屏幕坐标的情况下缩放纹理或材质
- 如何在GTK程序运行时禁用屏幕保护程序/电源管理/屏幕消隐
- 使用 SFML 和 C++ 将 Pixel 打印到屏幕上
- 程序顶部的声明与定义(最佳实践)
- 在 Windows 8/10 技术中完全实时的屏幕捕获,没有延迟
- Winapi:屏幕截图未显示在窗口中
- 如何在快板的屏幕中显示子位图的绘制?
- 顶部带有搜索框的组合框
- 按回车键后输出屏幕关闭
- 要在屏幕上绘制一些小瓷砖,我应该使用 QQuickItem 还是 QQuickPaintedItem?
- SFML 向下移动时如何围绕屏幕中心旋转?
- 截取屏幕截图后程序卡住
- 在Visual Studio中单实例Qt应用程序版本5.11.1中,在所有其他窗口的顶部打开Qt MainWindow
- C++鼠标单击时的屏幕截图不起作用
- 屏幕插入运算符<<的运算符过载问题
- 获取网格中心的屏幕位置
- SFML 中的字体.信息不显示在屏幕上.显示的不是信息,而是点
- 用SFML在屏幕顶部(Windows)绘制
- 如何在MFC上设置窗口位置以将其定位到屏幕顶部
- 在devkit pro中,在图像上显示文本时,屏幕顶部出现垃圾