学习笔记3里说的是怎么显示外部存储的图片,这次要探索的是怎么把内存中的图片数据显示到屏幕上(多媒体解码后所得数据即在内存中)。主要是利用SDL_CreateRGBSurfaceFrom()函数,以RGB8888的图像为例,假设pixels中存储的是一副RGBA8888格式的像素值。
示例源码:
#include "SDL.h"
#include <stdio.h>
#include <string.h>
void GetRGBA8888Data(void *&pixels, int &width, int &height)
{
// for debug
width = 600;
height = 400;
pixels = calloc(width*height*4,1); // 一像素占4字节
}
void example04()
{
SDL_Window *pWindow = NULL;
SDL_Renderer *pRenderer = NULL;
SDL_Texture *pTexture;
SDL_Rect srcRect;
SDL_Rect dstRect;
if (SDL_Init(SDL_INIT_EVERYTHING) < 0) return;
pWindow = SDL_CreateWindow("example04: for mediaplayer", 100, 100, 700, 590, 0);
if (NULL ==