Board.KolibriOS.org

Official KolibriOS board
It is currently Thu Oct 22, 2020 6:40 am

All times are UTC+03:00




Post new topic  Reply to topic  [ 1140 posts ]  Go to page Previous 112 13 14 15 1676 Next
Author Message
PostPosted: Thu Nov 04, 2010 2:19 pm 
Offline
Kernel Developer
User avatar

Joined: Fri Aug 14, 2009 1:46 am
Posts: 1412
Freeman :D ...и чтоб чирикала и крылышками махала...


Top
   
PostPosted: Thu Nov 04, 2010 5:14 pm 
art_zh wrote:
и чтоб чирикала

Не чирикает. Чирикают воробьи, да еще гопнеги чирикают "Слышь, червонец одолжи а?" (червонец - чирик)


Top
   
PostPosted: Thu Nov 04, 2010 9:54 pm 
Offline
User avatar

Joined: Tue May 08, 2007 12:44 am
Posts: 353
art_zh wrote:
и крылышками махала...

А в Колибри разве есть понятие курсора "песочные часы"? Всё и так летает, не?


Top
   
PostPosted: Thu Nov 04, 2010 9:59 pm 
Freeman wrote:
art_zh wrote:
и крылышками махала...

А в Колибри разве есть понятие курсора "песочные часы"? Всё и так летает, не?

В Колибри есть понятие - слишком много жрущих процессорное время приложений запущено, либо одно, которое написал больной на голову программист, которое ушло в вечный цикл перерисовки своего окна. Но система естественно такое не отслеживает - сервиса такого не предусмотрено.


Top
   
PostPosted: Fri Nov 05, 2010 1:40 am 
Offline
User avatar

Joined: Mon Feb 09, 2009 4:13 am
Posts: 445
Freeman wrote:
В порядке общего бреда: только мне грезится курсор в виде колибри?

Интересная идея, мне очень понравилась. :D Только врятли у меня получится нарисовать курсор в виде Колибри, но попробовать стоит. Image

_________________
\ Маузер в руке, Путин – на крюке! \ Путину – клизму! Смерть капитализму! \ Путин – параша, победа будет наша!\
\ Застрели буржуя в спину! Он не лучше чем скотина! \
Image


Top
   
PostPosted: Fri Nov 05, 2010 8:00 am 
Offline
User avatar

Joined: Tue May 08, 2007 12:44 am
Posts: 353
Кто-то выкладывал на форуме векторный логотип. Из него и можно сделать. Только придётся развернуть в другую сторону. Стремление вперёд похвально, но мышиные стрелки пока ориентируется на правшей. :)


Top
   
PostPosted: Fri Nov 05, 2010 5:48 pm 
Offline
User avatar

Joined: Mon Feb 09, 2009 4:13 am
Posts: 445
Искать надо. Ну я пока фейс переделываю, а стрелку делать буду скорее всего в последнюю очередь, поэтому пока не срочно. :?

_________________
\ Маузер в руке, Путин – на крюке! \ Путину – клизму! Смерть капитализму! \ Путин – параша, победа будет наша!\
\ Застрели буржуя в спину! Он не лучше чем скотина! \
Image


Top
   
PostPosted: Fri Nov 05, 2010 5:56 pm 
Offline
Mentor
User avatar

Joined: Mon Oct 19, 2009 10:58 am
Posts: 510
Freeman wrote:
Кто-то выкладывал на форуме векторный логотип.
Rock_maniak_forever wrote:
Искать надо.

Логотип (и не только) в этой теме.


Top
   
PostPosted: Fri Nov 05, 2010 9:49 pm 
Offline
User avatar

Joined: Mon Feb 09, 2009 4:13 am
Posts: 445
dunkaist wrote:
Логотип (и не только) в этой теме.

Image

_________________
\ Маузер в руке, Путин – на крюке! \ Путину – клизму! Смерть капитализму! \ Путин – параша, победа будет наша!\
\ Застрели буржуя в спину! Он не лучше чем скотина! \
Image


Top
   
PostPosted: Fri Feb 11, 2011 8:03 pm 
Offline

Joined: Mon Sep 24, 2007 11:11 am
Posts: 2814
Вопросы по C и libc.
1) Имеется функция void __menuet__putimage(__u16 x1,__u16 y1,__u16 xsize,__u16 ysize,char * image).
Она принимает на вход изображение в формате BBGGRR, если судить по коду в libc и описанию 7й системной функции.
У меня имеется массив int m[300][300]. Я создаю переменную char data[300*300*3], и делаю вот так:
Code:
for (x=0;x<300;x++) {for (y=0;y<300; y++) {if (m[x][y]!=1) {data[300*y+3*x]=0xFF; data[300*y+3*x+1]=0xFF; data[300*y+3*x+2]=0xFF;}}}

Как мне казалось, этот код должен был изменить атрибуты красной, синей и зеленой составляющих на FF для всех точек исходного массива, не равных 1. Но на самом деле этот код выводит кашу. Видимо, с структурой изображения нужно работать как-то по-другому. Вопрос - как?
И еще, наверное, вместо простого задания char data[300*300*3] правильнее работать через malloc? Как это нужно делать?

2) Если в коде программы есть fopen (да и другие операции с ФС), то она отказывается собираться:
Code:
/home/sourcerer/projects/me/lib/libc.a(remove.o): In function `remove':
remove.c:(.text+0x9a): undefined reference to `__stack_chk_fail'
/home/sourcerer/projects/me/lib/libc.a(doprnt.o): In function `exponentl':
doprnt.c:(.text+0xbb): undefined reference to `__stack_chk_fail'
/home/sourcerer/projects/me/lib/libc.a(doprnt.o): In function `_doprnt':
doprnt.c:(.text+0x15d7): undefined reference to `__stack_chk_fail'

Это проблема моей сборки libc, или так и должно быть? Как тогда собирается doom?


Top
   
PostPosted: Fri Feb 11, 2011 8:48 pm 
Offline
Mentor
User avatar

Joined: Tue Jan 15, 2008 11:27 am
Posts: 756
К сожалению, ни одна libc для Колибри мне не нравится. Поэтому ими не пользуюсь и конкретно посоветовать ничего не могу. Код вроде правильный (зачем только столько скобочек? :)). Предположение - попробовать заменить тип data с char на unsigned char. И второе - поменять x и y в индексе массива data. Но без полного исходника, входных и выходных данных сказать точно не могу.


Top
   
PostPosted: Fri Feb 11, 2011 8:53 pm 
Offline
User avatar

Joined: Mon Oct 27, 2008 10:10 pm
Posts: 832
Albom wrote:
И второе - поменять x и y в индексе массива data

там просто нужно умножить координату Y на 3, т. е.
Code:
300*y+3*x ---> 3*(300*y+x)
300*y+3*x+1 ---> 3*(300*y+x)+1
300*y+3*x+2 ---> 3*(300*y+x)+2


Top
   
PostPosted: Fri Feb 11, 2011 9:37 pm 
Offline

Joined: Thu Nov 25, 2010 8:26 pm
Posts: 41
Sorcerer wrote:
2) Если в коде программы есть fopen (да и другие операции с ФС), то она отказывается собираться:

Не знаю точно что с libc, сам я ради интереса занимался велосипедостроением. Вот несколько функций для чтения/записи файлов, если нужно. Не фонтан, но работали.
Spoiler: Show
Code:
#define FS_SUCCESS              (0)
#define FS_NO_DISK              (1)
#define FS_INCORRECT_OPERATION  (2)
#define FS_UNKNOWN_FS_TYPE      (3)
#define FS_RESERVED             (4)
#define FS_FILE_NOT_FOUND       (5)
#define FS_EOF                  (6)
#define FS_BUFFER_OVERFLOW      (7)
#define FS_DISK_FULL            (8)
#define FS_FAT_INVALID          (9)
#define FS_ACCESS_DENIED        (10)
#define FS_DISK_ERROR           (11)
#define FS_OUT_OF_MEMORY        (30)
#define FS_NOT_EXEC             (31)
#define FS_TO_MANY_PROCESSES    (32)

typedef struct __attribute__((packed)) {
    unsigned nfunc;
    unsigned posl;
    unsigned posh;
    unsigned nbytes;
    void *buf;
    char zero;
    char *name;
} ksys_file_info_t;

static void ksys_assign (ksys_file_info_t *fh, char *name) {
    fh->zero = 0;
    fh->name = name;
}

static int ksys_rewrite (ksys_file_info_t *fh) {
    fh->nfunc = 2;
    fh->posl = 0;
    fh->posh = 0;
    fh->nbytes = 0;
    fh->buf = 0;

    unsigned int n;
    int return_code;

    __asm__ __volatile__ (
        "int $0x40"
        : "=a"(return_code), "=b"(n)
        : "0"((unsigned)70), "1"((void*)fh)
    );

    return return_code;
}

static int ksys_write (ksys_file_info_t *fh, void *buf, unsigned int size, unsigned int *err) {
    fh->nfunc = 3;
    fh->nbytes = size;
    fh->buf = buf;

    unsigned int n;

    __asm__ __volatile__ (
        "int $0x40"
        : "=a"(*err), "=b"(n)
        : "0"((unsigned)70), "1"((void*)fh)
    );

    fh->posl += n;

    return n;
}

static void ksys_reset (ksys_file_info_t *fh) {
    fh->posl = 0;
    fh->posh = 0;
}

static int ksys_read (void *ptr, int n, ksys_file_info_t *f) {
    int return_code, count = 0;
    f->nfunc = 0;
    f->nbytes = n;
    f->buf = ptr;
    f->zero = 0;

    __asm__ __volatile__ (
        "int $0x40"
        : "=a"(return_code), "=b"(count)
        : "0"(70), "1"(f)
        : "memory"
    );

    if (return_code == 0) {
        f->posl += count;
        return count;
    } else if (return_code == 6) { /*EOF*/
        f->posl += count;
        return count;
    } else {
        return -1;
    }
}


Top
   
PostPosted: Fri Feb 11, 2011 9:58 pm 
Offline

Joined: Mon Sep 24, 2007 11:11 am
Posts: 2814
Спасибо за помощь!
Функции чтения/записи тоже имею, но из-за природной лени хотелось "родные" Сишные команды... Не привык я работать с аттрибутами, буферами. Ну что же, если выбора нет, придется учиться.


Top
   
PostPosted: Sat Feb 12, 2011 5:52 am 
Offline
User avatar

Joined: Fri Jun 27, 2008 3:22 pm
Posts: 988
Sorcerer
Собранная версия http://ftp.kolibrios.org/users/Asper/menuetlibc/.


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 1140 posts ]  Go to page Previous 112 13 14 15 1676 Next

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 3 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Limited