SDL基础使用01( 项目创建,绘制矩形)

简介: 在Visual Studio中创建SDL项目、集成SDL库、绘制矩形的步骤和代码示例。

SDL在VS编译环境下的使用

  • 创建一个VS项目
  • 将下载的sdl库include和lib文件夹放到项目工程下
  • 添加附加包含目录路径

  • 添加依赖路径

1. 项目创建

#include <iostream>
/* SDL项目基本使用 */

// 1. 在cpp文件中调用C函数包含头文件时需要用extern "C"包一下
extern "C"
{
#include <SDL.h>
}
// 2. 包含静态库文件(或者直接在项目属性中添加 链接器 -> 输入 -> 附加依赖项)
#pragma comment(lib, "x86/SDL2.lib")

// 3. 将SDL中的main函数解除定义,从而识别自己写的main函数
#undef main
// 4. 将dll文件放到可执行程序同级目录下
int main()
{
    int nRet = SDL_Init(SDL_INIT_VIDEO);    // 初始化SDL
    if (nRet == -1) return -1;                // 初始化失败

    SDL_Delay(1000);                        // 延时一秒

    SDL_Quit();                                // 退出

    return 0;
}

2. 绘制矩形

#include <iostream>
/* 绘制矩形 */
extern "C"
{
    #include <SDL.h>
}

#pragma comment(lib, "SDL2.lib")

#undef main
int main()
{
    // 1. 初始化
    int nRet = SDL_Init(SDL_INIT_EVERYTHING);        
    if (nRet < 0)
    {
        std::cout << "SDL Error: " << SDL_GetError() << std::endl;
        return -1;
    }

    // 2. 创建窗口
    SDL_Window* pWnd = SDL_CreateWindow("title",    
                                        SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED,    // 默认屏幕中间位置
                                        640, 480,                                            // 宽高
                                        SDL_WINDOW_SHOWN);                                    // 窗口显示方式
    if (NULL == pWnd)
    {
        std::cout << "SDL Error: " << SDL_GetError() << std::endl;
        return -1;
    }

    // 3. 获取窗口的表面(画布)
    SDL_Surface* pSurface = SDL_GetWindowSurface(pWnd);    
    if (NULL == pSurface)
    {
        std::cout << "SDL Error: " << SDL_GetError() << std::endl;
        return -1;
    }

    // 4. 绘图
    SDL_Rect rect = { 100, 100, 50, 50 };
    SDL_FillRect(pSurface, &rect, SDL_MapRGB(pSurface->format, 255, 0, 0));

    // 5. 更新画布
    SDL_UpdateWindowSurface(pWnd);

    SDL_Delay(3000);        // 延时

    // 6. 释放窗口资源,退出
    if (pWnd)                        
    {
        SDL_DestroyWindow(pWnd);    
    }
    SDL_Quit();                        

    return 0;
}
相关文章
|
2月前
|
程序员 C# 图形学
Unity3D学习笔记1——绘制一个三角形
Unity3D学习笔记1——绘制一个三角形
66 0
|
5月前
|
前端开发 API vr&ar
Android开发之OpenGL绘制三维图形的流程
即将连载的系列文章将探索Android上的OpenGL开发,这是一种用于创建3D图形和动画的技术。OpenGL是跨平台的图形库,Android已集成其API。文章以2D绘图为例,解释了OpenGL的3个核心元素:GLSurfaceView(对应View)、GLSurfaceView.Renderer(类似Canvas)和GL10(类似Paint)。通过将这些结合,Android能实现3D图形渲染。文章介绍了Renderer接口的三个方法,分别对应2D绘图的构造、测量布局和绘制过程。示例代码展示了如何在布局中添加GLSurfaceView并注册渲染器。
184 1
Android开发之OpenGL绘制三维图形的流程
|
5月前
|
API C语言 图形学
EasyX图形库学习(一、窗口创建函数initgraph、背景颜色设置setbkcolor、图形绘制函数)
EasyX图形库学习(一、窗口创建函数initgraph、背景颜色设置setbkcolor、图形绘制函数)
|
异构计算
[笔记]音视频学习之SDL篇《十》绘制矩形,线条
[笔记]音视频学习之SDL篇《十》绘制矩形,线条
116 0
|
前端开发 定位技术
QT使用QML实现地图绘制虚线
QML提供了MapPolyline用于在地图上绘制线段,该线段是实线,因此我使用Canvas自定义绘制的方式在地图上绘制线段
195 0
|
Windows
【OpenGL】十九、OpenGL 绘制模式 ( 绘制线框模式 | 绘制点模式 )(二)
【OpenGL】十九、OpenGL 绘制模式 ( 绘制线框模式 | 绘制点模式 )(二)
331 0
【OpenGL】十九、OpenGL 绘制模式 ( 绘制线框模式 | 绘制点模式 )(二)
|
开发工具 Windows
SDL开发笔记(三):使用SDL渲染窗口颜色和图片
SDL开发笔记(三):使用SDL渲染窗口颜色和图片
SDL开发笔记(三):使用SDL渲染窗口颜色和图片
|
缓存 容器
案例 01、OpenGL入门--绘制三角形
OpenGL中三角形的绘制,就类似于学习编程时的Hello world,是一个入门级的使用,重点在于理解图形是如何绘制的
265 0
案例 01、OpenGL入门--绘制三角形
【OpenGL】十一、OpenGL 绘制多个点 ( 绘制单个点 | 绘制多个点 )
【OpenGL】十一、OpenGL 绘制多个点 ( 绘制单个点 | 绘制多个点 )
290 0
【OpenGL】十一、OpenGL 绘制多个点 ( 绘制单个点 | 绘制多个点 )