手機 - Blackberry Passport - Core Native (C/C++) - SDL v1.2 - Get Ticks



main.cpp

#include <stdio.h>
#include <stdio.h>
#include <stdlib.h>
#include <SDL.h>
#include <SDL_image.h>
#include <SDL_ttf.h>

int main(int argc, char* args[])
{
    int loop = 1;
    SDL_Event event;

    if (SDL_Init(SDL_INIT_VIDEO) != 0) {
        printf("%s, failed to SDL_Init\n", __func__);
        return -1;
    }

    SDL_Surface* screen = NULL;
    screen = SDL_SetVideoMode(1440, 1440, 32, SDL_HWSURFACE | SDL_DOUBLEBUF);
    if (screen == NULL) {
        printf("%s, failed to SDL_SetVideMode\n", __func__);
        return -1;
    }
    SDL_ShowCursor(0);
    SDL_FillRect(screen, &screen->clip_rect, SDL_MapRGB(screen->format, 0xff, 0xff, 0xff));

    if (TTF_Init() == -1) {
        printf("failed to TTF_Init\n");
        return -1;
    }

    SDL_Rect of = {0}; 
    SDL_Color textColor = {0xff, 0, 0};
    TTF_Font *font = TTF_OpenFont("app/native/lato.ttf", 100);
    SDL_Surface *msg = TTF_RenderText_Solid(font, "Lesson 12. Timing", textColor);

    of.x = 100;
    of.y = 400;
    SDL_BlitSurface(msg, NULL, screen, &of);
    SDL_Flip(screen);
  
    Uint32 start = SDL_GetTicks();
    SDL_Delay(10000);
    Uint32 end = SDL_GetTicks();

    char buf[128];

    of.x = 100;
    of.y = 800;
    sprintf(buf, "start:%dms, end:%dms", start, end); 
    SDL_FreeSurface(msg);
    msg = TTF_RenderText_Solid(font, buf, textColor);
    SDL_BlitSurface(msg, NULL, screen, &of);
    SDL_Flip(screen);

    while (loop) {
        while (SDL_PollEvent(&event)) {
            if (event.type == SDL_KEYDOWN) {
                if (event.key.keysym.sym == SDLK_x) {
                    loop = 0;
                }
            }
        }
    }
    TTF_CloseFont(font);
    SDL_FreeSurface(msg);
    TTF_Quit();
    SDL_Quit();
    return 0;    
}

bar-descriptor.xml

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<qnx xmlns="http://www.qnx.com/schemas/application/1.0">
    <id>com.steward.sdl.ch12</id>
    <name>ch12</name>
    <filename>ch12</filename>
    <versionNumber>1.0.0</versionNumber>
    <buildId>1</buildId>
    <description>Lesson 12. Timing</description>

    <author>Steward</author>
    <authorId>gYAAgGE4qaHzBnzEAu8JKe4G1OI</authorId>

    <asset path="main" entry="true" type="Qnx/Elf">main</asset>
    <asset path="lato.ttf">lato.ttf</asset>
    <asset path="lib" type="Qnx/Elf">lib</asset>

    <permission system="true">run_native</permission>
    <env var="LD_LIBRARY_PATH" value="app/native/lib"/>
</qnx>

Makefile

main: main.cpp
	ntoarmv7-gcc main.cpp -g -o main lib/libSDL-1.2.so.11 -Iinclude lib/libSDL_image-1.2.so.8 lib/libSDL_ttf-2.0.so.10 lib/libSDL_mixer-1.2.so.12 $(QNX_TARGET)/lib/libwebp.a
	blackberry-nativepackager -package main.bar bar-descriptor.xml -devMode -debugToken ${HOME}/.rim/debugtoken_q30.bar

clean:
	rm -rf main
	rm -rf main.bar

完成