0
点赞
收藏
分享

微信扫一扫

ffmpeg整合sdl2实现纹理渲染随机出现的方块

ffmpeg整合sdl2实现纹理渲染随机出现的方块_ide
主要代码如下:

#include<stdio.h>
#include "libavutil/avutil.h"
#include "libavutil/timestamp.h"
#include "libavdevice/avdevice.h"
#include "libavformat/avformat.h"
#include "libavcodec/avcodec.h"
#include "libswscale/swscale.h"
#include "ff.h"
#include "SDL2/SDL.h"



void sdl(void) {

int quit=1;

SDL_Event event;

SDL_Window *window=NULL;

SDL_Renderer *render=NULL;

SDL_Init(SDL_INIT_VIDEO|SDL_INIT_AUDIO);

window=SDL_CreateWindow("SDL2 Window",200,200,640,480,SDL_WINDOW_SHOWN);

if(!window){
printf("Faild to Create window!");
goto __EXIT;
}
render= SDL_CreateRenderer(window,-1,0);

if(!render){

SDL_Log("Faild to create render!");
goto __DWINDOW;
}
// SDL_SetRenderDrawColor(render,255,0,0,255);
// SDL_RenderClear(render);
// SDL_RenderPresent(render);

//SDL_Delay(3000);

SDL_Texture *texture = SDL_CreateTexture(render,SDL_PIXELFORMAT_RGBA8888,SDL_TEXTUREACCESS_TARGET,640,480);

if(!texture){
SDL_Log("Failed to create texture!");
goto __RENDER;
}
do{
SDL_WaitEvent(&event);
switch(event.type){
case SDL_QUIT:
quit=0;
break;
default:
SDL_Log("event type is %d\n",event.type);
}

SDL_Rect rect;
rect.w=30;
rect.h=30;
rect.x=rand()%600;
rect.y=rand()%450;

SDL_SetRenderTarget(render,texture);
SDL_SetRenderDrawColor(render,0,0,0,0);
SDL_RenderClear(render);

SDL_RenderDrawRect(render,&rect);
SDL_SetRenderDrawColor(render,255,0,0,0);
SDL_RenderFillRect(render,&rect);

SDL_SetRenderTarget(render,NULL);
SDL_RenderCopy(render,texture,NULL,NULL);

SDL_RenderPresent(render);

}while(quit);

SDL_DestroyTexture(texture);

__RENDER:
SDL_DestroyRenderer(render);

__DWINDOW:
SDL_DestroyWindow(window);

__EXIT:
SDL_Quit();

return ;
}

下载源码


举报

相关推荐

0 条评论