最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

第三章:C4droid編程:SDL2_01:創(chuàng)建窗口

2022-11-09 04:24 作者:PonyLinuxlife  | 我要投稿

Hello,Everyone,今天我來講解開源多媒體層SDL/SDL2。

SDL/SDL2 是跨平臺的多媒體層,通過對opengl庫和其他庫的包裝,降低了開發(fā)難度。SDL/SDL2可以在Windows,MacOS,Linux,iOS,Android甚至是嵌入式Linux都可以使用,同時還有很多開源軟件也在使用,比如ffmpeg的ffplay,游戲My Little Investigations 等。

打開c4droid,創(chuàng)建工程文件夾,并在該文件夾中創(chuàng)建Makefile和src/testsdl2.c,代碼如下:

src/testsdl2.c

/* 
 * File ? ? ?: testsdl2.c
 * This file is test sdl2 project.
 *
 * Change Logs:
 * Date ? ? ? ? ? Author ? ? ? Notes
 * 2022-10-16 ? ? LinuxLife ? ?the first version
 */
#include "SDL2/SDL.h"
#include <stdlib.h>




int main(int argc, char *argv[])
{
	SDL_Window *win = NULL;//窗口指針初始化為0


	if (SDL_Init(SDL_INIT_EVERYTHING) < 0)//初始化所有組件
	{
		return 1;//錯誤則退出
	}

 ? ?/* 創(chuàng)建640*480,位置0,0全屏窗口 */
	win = SDL_CreateWindow("test", 0, 0, 640, 480, SDL_WINDOW_FULLSCREEN);
	SDL_Delay(3000);//延時3000ms


	SDL_DestroyWindow(win);//刪除窗口


	SDL_Quit();//退出SDL2
	return 0;//退出程序
}

SDL_Init 參數(shù)

int SDL_Init(Uint32 flags) /* flags: SDL_INIT_VIDEO------------------------視頻組件 SDL_INIT_EVENTS-----------------------事件處理組件 SDL_INIT_TIMER------------------------定時器組件 SDL_INIT_AUDIO------------------------音頻組件 SDL_INIT_JOYSTICK---------------------游戲桿組件,自動包含Event組件 SDL_INIT_HAPTIC-----------------------觸覺(力反饋)組件 SDL_INIT_GAMECONTROLLER---------------游戲控制組件,自動包含Joystick組件 SDL_INIT_EVERYTHING-------------------所有組件 return: =0:正常 <0:錯誤 */

SDL_CreateWindow 參數(shù)

SDL_Window* SDL_CreateWindow(
 ?const char* title,//窗口名稱
 ?int ? ? ? ? x,//窗口位置
 ?int ? ? ? ? y,//
 ?int ? ? ? ? w,//窗口大小
 ?int ? ? ? ? h,//
 ?Uint32 ? ? ?flags) 
 ?/*
 ?flags:
 ?SDL_WINDOW_FULLSCREEN-----------全屏
 ?SDL_WINDOW_HIDDEN---------------不可見窗口
 ?SDL_WINDOW_BORDERLESS-----------無邊框窗口
 ?SDL_WINDOW_RESIZABLE------------大小可調(diào)窗口
 ?SDL_WINDOW_MINIMIZED------------最小化窗口
 ?SDL_WINDOW_MAXIMIZED------------最大化窗口
 ?SDL_WINDOW_INPUT_GRABBED--------創(chuàng)建后獲得接收輸入
 ?
 ?return:
 ?window指針
 ?*/ ?

Makefile

#-------------------------------------------------------------------------------
#	File: Makefile
#	This file is used for auto compiling C4droid project.
#
#	Change Logs:
#	Date ? ? ? ? ? Author ? ? ? Notes
#	2022-10-12 ? ? LinuxLife ? ?the first version
# ? 2022-11-04 ? ? LinuxLife ? ?repair linker return undefined function errors
# ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? change libs configuration
# ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? add droidc path and gcc path
#-------------------------------------------------------------------------------




#---------------------------------------
#	C4droid path
#--------------------------------------- 
DROIDC_PATH ? ? ? := /data/user/0/com.n0n3m4.droidc/files/
DROIDC_GCC_PREFIX := $(DROIDC_PATH)gcc/aarch64-linux-android/




#---------------------------------------
#	Project Name
#--------------------------------------- 
target ? ? ?:= test




#---------------------------------------
#	Compiler option
#--------------------------------------- 
TOOLCHAIN := aarch64-linux-android-
CC ? ? ? ?:= $(TOOLCHAIN)gcc
AS ? ? ? ?:= $(TOOLCHAIN)as
LD ? ? ? ?:= $(CC)


CC_CONFIG := -pie -fpie
AS_CONFIG := 
LD_CONFIG := -pie -fpie




#---------------------------------------
#	Libs option
#--------------------------------------- 
LIB_SDL2_CONFIG := -D_REENTRANT -L/data/user/0/com.n0n3m4.droidc/files/gcc/aarch64-linux-android/lib -Wl,--start-group,--no-undefined -shared -ltiff -ljpeg -lpng -lz -lfreetype -lsmpeg2 -lvorbisfile -lvorbis -logg -lstdc++ -ldl -lSDL2 -lGLESv1_CM -lGLESv2 -landroid -llog
LIB_SDL2_A_PATH := 
LIB_SDL2_H_PATH := $(DROIDC_GCC_PREFIX)include/SDL2


LIB_CONFIG := $(LIB_SDL2_CONFIG)
LIB_A_PATH := $(LIB_SDL2_A_PATH)
LIB_H_PATH := $(LIB_SDL2_H_PATH)




#---------------------------------------
#	source path
#---------------------------------------
INCDIRS := src
SRCDIRS := src




#---------------------------------------
#	get source files
#---------------------------------------
INCLUDE	:= $(patsubst %, -I %, $(INCDIRS))


#	get files
CFILES	 := $(foreach dir, $(SRCDIRS), $(wildcard $(dir)/*.c))


#	get files path
CFILENDIR	 ?:= $(notdir ?$(CFILES))


#	get object files
COBJS ? ? ?:= $(patsubst %, %, $(CFILENDIR:.c=.o))
OBJS ? ? ? := $(COBJS)


VPATH ? ? ?:= $(SRCDIRS)


.PHONY: clean




#---------------------------------------
#	start compiling
#---------------------------------------
$(target) : $(OBJS)
	$(CC) $(CC_CONFIG) $(LIB_CONFIG) -o $(target) $(OBJS) $(LIB_A_PATH)
	
$(COBJS) : %.o : %.c
	$(CC) $(CC_CONFIG) -I $(LIB_H_PATH) $(INCLUDE) -c -o $@ $<




#---------------------------------------
#	clean object files
#---------------------------------------
clean:
	rm *.o $(target)

編寫完這兩個文件后,更改編譯設(shè)置

編譯設(shè)置

還有一點,上面的環(huán)境變量可以不用改,首次創(chuàng)建工程會有自帶的環(huán)境變量參數(shù),只需更改編譯模式,Make 命令,可執(zhí)行文件名稱和運行模式。

返回主界面,將標(biāo)簽頁轉(zhuǎn)到Makefile 上,點擊Compile ,編譯完成沒有報錯點擊Run,

運行效果是顯示無內(nèi)容的窗口3秒,然后退出。


第三章:C4droid編程:SDL2_01:創(chuàng)建窗口的評論 (共 條)

分享到微博請遵守國家法律
荣成市| 双流县| 六枝特区| 潍坊市| 温宿县| 措勤县| 潍坊市| 惠安县| 保靖县| 福建省| 丹棱县| 犍为县| 淳化县| 滨州市| 龙州县| 镇坪县| 原平市| 玉屏| 乌拉特中旗| 郯城县| 宝丰县| 岗巴县| 绍兴县| 柘城县| 康定县| 松潘县| 儋州市| 枣庄市| 克山县| 平乡县| 老河口市| 抚顺市| 浦北县| 吉隆县| 德庆县| 加查县| 南雄市| 太湖县| 海南省| 太白县| 和硕县|