下面列出了一个简单Raylib程序的代码(基于Raylib示例shapes_logo_raylib)。运行该程序会显示Raylib徽标的版本:填充大约三分之一(800x450)窗口的黑色方形轮廓。
通过GetCurrentMonitor()
、SetWindowSize()
、GetMonitorWidth()
、GetMonitorHeight()
、SetConfigFlags(FLAG_WINDOW_RESIZABLE)
或ToggleFullscreen()
等调用,制作一个全屏版本的程序并不难,但是,尽管黑色方块的 * 大小 * 与以前相似,它占据了(左上角)大部分的小部分(全屏)窗口。是否有一个选项可以在全屏窗口上显示原始窗口图像的更大“拉伸”版本?
#include "raylib.h"
int main(void)
{
int screenWidth = 800, screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [shapes] example - raylib logo using shapes");
while (!WindowShouldClose())
{
BeginDrawing()
ClearBackground(RAYWHITE);
DrawRectangle(screenWidth/2 - 128, screenHeight/2 - 128, 256, 256, BLACK);
DrawRectangle(screenWidth/2 - 112, screenHeight/2 - 112, 224, 224, RAYWHITE);
DrawText("raylib", screenWidth/2 - 44, screenHeight/2 + 48, 50, BLACK);
EndDrawing();
}
CloseWindow();
return 0;
}
1条答案
按热度按时间wmomyfyw1#
我对你的代码做了如下的添加,使它可以在任何窗口大小上工作。它可以把你想画的东西画到RenderTexture2D上,然后把所说的纹理画到屏幕上。我只在可调整大小的窗口上测试过它,但是它应该可以在任何窗口模式下工作,包括独占全屏。
简而言之:
1.使用
LoadRenderTexture(int, int)
请求渲染纹理1.使用
BeginTextureMode(RenderTexture2D)
和EndTextureMode()
在纹理上绘制1.使用
DrawTexturePro(Texture2D, Rectangle, Rectangle, Vector2, float, Color)
绘制纹理,第一个矩形是纹理的大小,第二个矩形是屏幕的大小。如果它看起来像镜像,反转输入纹理的高度。1.完成后卸载渲染纹理。
我对所有添加/更改添加了注解,以突出需要更改的内容。
我希望这能回答你的问题。