main.c
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <SDL.h>
int main(int argc, char **argv)
{
int cc = 0;
SDL_Rect rt = {0};
SDL_Surface *screen = NULL;
SDL_Window *window = NULL;
SDL_Texture *texture = NULL;
SDL_Renderer *renderer = NULL;
SDL_Init(SDL_INIT_VIDEO | SDL_INIT_JOYSTICK);
window = SDL_CreateWindow("Main", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 480, 640, SDL_WINDOW_SHOWN);
renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC);
texture = SDL_CreateTexture(renderer, SDL_PIXELFORMAT_RGB888, SDL_TEXTUREACCESS_TARGET, 640, 480);
screen = SDL_CreateRGBSurface(0, 640, 480, 32, 0, 0, 0, 0);
cc = 600;
rt.x = (480 - 640) / 2;
rt.y = (640 - 480) / 2;
rt.w = 640;
rt.h = 480;
while (cc--) {
switch (cc % 3) {
case 0:
SDL_FillRect(screen, &screen->clip_rect, SDL_MapRGB(screen->format, 0xff, 0x00, 0x00));
break;
case 1:
SDL_FillRect(screen, &screen->clip_rect, SDL_MapRGB(screen->format, 0x00, 0xff, 0x00));
break;
case 2:
SDL_FillRect(screen, &screen->clip_rect, SDL_MapRGB(screen->format, 0x00, 0x00, 0xff));
break;
}
SDL_SetRenderTarget(renderer, NULL);
SDL_UpdateTexture(texture, NULL, screen->pixels, screen->pitch);
SDL_RenderCopyEx(renderer, texture, NULL, &rt, 270, NULL, SDL_FLIP_NONE);
SDL_RenderPresent(renderer);
SDL_SetRenderTarget(renderer, texture);
SDL_Delay(60 / 1000);
}
SDL_FreeSurface(screen);
SDL_DestroyTexture(texture);
SDL_DestroyRenderer(renderer);
SDL_DestroyWindow(window);
SDL_Quit();
return 0;
}
Makefile
TARGET = main CROSS = arm-linux-gnueabihf- CFLAGS = -I/opt/staging_dir/target/usr/include/SDL2 LDFLAGS = /opt/staging_dir/target/rootfs/usr/miyoo/lib/libSDL2-2.0.so.0 export PATH=/opt/prebuilt_a30/bin:$(shell echo $$PATH) all: $(CROSS)gcc main.c -o $(TARGET) $(CFLAGS) $(LDFLAGS) clean: rm -rf $(TARGET)
編譯
$ cd
$ wget https://github.com/steward-fu/website/releases/download/miyoo-a30/gcc-linaro-7.5.0-arm-linux-gnueabihf.tar.gz
$ tar xvf gcc-linaro-7.5.0-arm-linux-gnueabihf.tar.gz
$ sudo mv prebuilt_a30 /opt
$ wget https://github.com/steward-fu/website/releases/download/miyoo-a30/staging_dir.tgz
$ tar xvf staging_dir.tgz
$ sudo mv staging_dir /opt
$ make
arm-linux-gnueabihf-gcc main.c -o main -I/opt/staging_dir/target/usr/include/SDL2 /opt/staging_dir/target/rootfs/usr/miyoo/lib/libSDL2-2.0.so.0