Урок 4: Простейшие способы обработки изображений, глава 3

Мы возвращаемся. Перед вами третья часть урока 4. Если вы не прочитали первую и вторую части, то вам следует ознакомиться с ними.

После некоторых трудностей, возникших в конце последнего раздела, следующую строку нам необходимо обновить. Она представляет обычное определение модуля, который мы использовали во всех остальных наших программах:

PSP_MODULE_INFO("Image Display Program", 0, 1, 1);

Снова добавим уже знакомый код и нашу стандартную функцию обратного вызова:

/* Exit callback */
int exit_callback(int arg1, int arg2, void *common) {sceKernelExitGame();return 0;}

/* Callback thread */
int CallbackThread(SceSize args, void *argp) {int cbid;
cbid = sceKernelCreateCallback("Exit Callback", exit_callback, NULL);
sceKernelRegisterExitCallback(cbid);
sceKernelSleepThreadCB();
return 0;}

/* Sets up the callback thread and returns its thread id */
int SetupCallbacks(void) {
int thid = 0;

thid = sceKernelCreateThread("update_thread", CallbackThread, 0×11, 0xFA0, 0, 0);
if(thid >= 0) {sceKernelStartThread(thid, 0, 0);}
return thid;}


Что-то знакомое, не так ли? Итак, мы добрались до самого интересного — запуска нашей функции main():

int main() {
char buffer[200];
Image* ourImage;

До этого момента все, что мы проделали со строками, будет выведено на экран с помощью printf (). Отлично! Теперь пришло время узнать, что представляет собой строка. Итак, в С (Си) строка – это массив символов. В С (Си) нет такого понятия, как «myString». Есть совокупность только 8 символьных переменных, помещенных вместе в память. Чтобы создать строку, сначала мы должны выделить необходимое количество памяти. Тем самым мы зарезервировали нужное количество памяти, и при дальнейших действиях (определение переменной или что-либо еще) наша строка сможет расшириться. Иначе произойдет переполнение буфера, но это мы не будем рассматривать сейчас. Просто помните, что нежелательно и может привести к зависанию вашего PSP. Для определения массива в С (Си), вы добавляете желаемый величины массив (данного типа) в скобки после имени переменной. Когда мы используем строку char buffer[200], мы отводим под память 200 символьных переменных. 200 – это максимальное количество символов, которое может содержать наша строка. Существует способ, позволяющий изменить размер, но это уже выходит за рамки данного учебного руководства.

Вторая строка в нашей функции main() задает новую переменную, названную «ourImage» с типом данных Image. Этот тип данных был определен в заголовочном файле graphics.h, который мы включили. Все, что мы делаем с ним, окажется в файле graphics.h благодаря использованию других функций. Вы против того, чтобы мы использовали этот файл? Но в ином случае программа стала для нас головной болью.

Догадываетесь, что будет дальше? Мы завершаем третью часть урока 4 и неспешно переходим к четвертой части.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: