Создать ответ 
 
Рейтинг темы:
  • Голосов: 1 - Средняя оценка: 5
  • 1
  • 2
  • 3
  • 4
  • 5
DreamShell 4.0 Beta 4
Автор Сообщение
SWAT Не на форуме
Администратор
*******

Сообщений: 7126
Зарегистрирован: 04.01.2005
Рейтинг: 30
Сказал спасибо: 130
Поблагодарили 1169 раз(а) в 727 сообщ.
Сообщение: #41
RE: DreamShell 4.0 Beta 4
Мсье знает толк в извращениях...

В принципе я узнал то что мне нужно из вашего кода, несмотря на главную ошибку, которую вы допустили оба Smile


PHP код:
#include <stdlib.h>

#define PACK_RGBA(R, G, B, A)     \
        
( (((R) & 0xff) << 24)    \
        | (((
G) & 0xff) << 16)    \
        | (((
B) & 0xff) << 8)    \
        | (((
A) & 0xff) << 0) )


int main(int argcchar **argv) {
    
    
int rgba;
    
0;
    
    
printf("Enter color: ");
    
    if(
scanf("#%02x%02x%02x%02x", &r, &g, &b, &a) < 3) {
        
printf("Error! Not enough colors or color is not valid.\n");
        return -
1;
    }
    
    
printf("Color: 0x%8lX\n"PACK_RGBA(rgba));
    return 
0;


Поняли о чем я?

[Изображение: barbers.png]
(Последний раз сообщение было отредактировано 16.01.2011 в 20:22, отредактировал пользователь SWAT.)
16.01.2011 20:21
Вебсайт Найти все сообщения Цитировать это сообщение
sc_maxim Не на форуме
Пользователь
**

Сообщений: 94
Зарегистрирован: 27.11.2010
Рейтинг: 1
Сказал спасибо: 1
Поблагодарили 4 раз(а) в 4 сообщ.
Сообщение: #42
RE: DreamShell 4.0 Beta 4
По моему задание, звучало как "запаковать строку вида #AABBCC", а не отдельные значения. А ты нам показываешь как паковать отдельные значения в одну переменную. Конечно вводя их как строку, но сохраняя в разные переменные...
или ты хотел показать своим примером, что-то другое, что я не понял?

Да, при моих знаниях... меня еще нельзя назвать программистом, не суди пожалуйста строго Smile
(Последний раз сообщение было отредактировано 16.01.2011 в 21:21, отредактировал пользователь sc_maxim.)
16.01.2011 21:08
Найти все сообщения Цитировать это сообщение
Rio Не на форуме
Продвинутый
***

Сообщений: 365
Зарегистрирован: 04.04.2009
Рейтинг: 2
Сказал спасибо: 1
Поблагодарили 4 раз(а) в 4 сообщ.
Сообщение: #43
RE: DreamShell 4.0 Beta 4
Цитата:Поняли о чем я?
Поняли, но постановка задания была совсем другая...

Цитата:По моему задание, звучало как "запаковать строку вида #AABBCC", а не отдельные значения.
Вот именно...

Сват, так что, мы приняты, или как?
(Последний раз сообщение было отредактировано 16.01.2011 в 21:43, отредактировал пользователь Rio.)
16.01.2011 21:39
Найти все сообщения Цитировать это сообщение
sc_maxim Не на форуме
Пользователь
**

Сообщений: 94
Зарегистрирован: 27.11.2010
Рейтинг: 1
Сказал спасибо: 1
Поблагодарили 4 раз(а) в 4 сообщ.
Сообщение: #44
RE: DreamShell 4.0 Beta 4
Приняты иль не приняты, мне кажется, что все равно пока что лучше написать какой то толковый модуль или прогу, а потом сунутся в ядро.. тем более если там нет коментов, то это будет бесполезно или очень болезненно Smile.
SDK есть и это уже многое дает нам для начала работы, было бы желание, а так можно что хочешь сотворить на его основе.
И параллельно вопрос: SWAT ты собирал компилятор для sh4 под MinGW, а то Cygwin как то медленно у меня пашет и выдает ошибки при компиляции?
(Последний раз сообщение было отредактировано 16.01.2011 в 21:54, отредактировал пользователь sc_maxim.)
16.01.2011 21:49
Найти все сообщения Цитировать это сообщение
SWAT Не на форуме
Администратор
*******

Сообщений: 7126
Зарегистрирован: 04.01.2005
Рейтинг: 30
Сказал спасибо: 130
Поблагодарили 1169 раз(а) в 727 сообщ.
Сообщение: #45
RE: DreamShell 4.0 Beta 4
В смысле другая?? Я запаковал строку в 32 бита, разве я не выполнил условие?
Вообще то макрос PACK_RGBA как раз и пакует в одну переменную полученные цвета по отдельности, просто я сразу вывел значение принтом.

Но и у меня был лишний код, вообще можно было сделать вот так:

PHP код:
int main(int argcchar **argv) {
    
    
uint32_t rgba 0x00000000;
    
    
printf("Enter color: ");
    
    if(
scanf("#%08x", &rgba) < 1) {
        
printf("Error! Not enough colors or color is not valid.\n");
        return -
1;
    }
    
    
printf("Color: 0x%8lX\n"rgba);
    return 
0;


Можно спользовать функцию sscanf чтобы брать значение не из ввода, а из любой строковой переменной.
Этим я хотел сказать что вы оба изобрели велосипед, хотя все это делается буквально одной функцией, которая входит в стандартную библиотеку stdlib. Я конечно понимаю что каждый хотел показать что он может много чего написать Smile) но в реальности это совсем не продуктивно.

В любом случае начинайте с SDK, а дальше посмотрим.

Я все компиляторы собираю под cygwin.

[Изображение: barbers.png]
(Последний раз сообщение было отредактировано 16.01.2011 в 22:26, отредактировал пользователь SWAT.)
16.01.2011 22:25
Вебсайт Найти все сообщения Цитировать это сообщение
sc_maxim Не на форуме
Пользователь
**

Сообщений: 94
Зарегистрирован: 27.11.2010
Рейтинг: 1
Сказал спасибо: 1
Поблагодарили 4 раз(а) в 4 сообщ.
Сообщение: #46
RE: DreamShell 4.0 Beta 4
Блин.. Я уже делал подобное, когда то, только там была передача данных строкой по сети , а потом со строки числа нада было извлечь, и я же использовал тогда sscanf() Smile Просто это было года два назад... вот что значит отсутствие практики - все забывается.

Если соберу компил под MinGW то расскажу как, если кому будет интересно Smile
(Последний раз сообщение было отредактировано 16.01.2011 в 22:33, отредактировал пользователь sc_maxim.)
16.01.2011 22:31
Найти все сообщения Цитировать это сообщение
Rio Не на форуме
Продвинутый
***

Сообщений: 365
Зарегистрирован: 04.04.2009
Рейтинг: 2
Сказал спасибо: 1
Поблагодарили 4 раз(а) в 4 сообщ.
Сообщение: #47
RE: DreamShell 4.0 Beta 4
Постановка задачи звучала так: написать функцию, которая бы преобразовывала бы строку символов в упакованное 32 разрядное слово. Ты же выкинул нам макрос, который пакует в переменную 4 цифры, именно цифры, а не символа. Может мы и изобрели велосипед, ну так что ж теперь, вешаться что ли? Иногда и велосипеды изобретать полезно, для понимания смысла так сказать, и сути производимых действий.
Тем более, я, как и sc_maxim, не тренировался уже в написании программ на си уже более как полугода, не говоря уже о том что я вообще как бы не программер (т.е. не работаю им по специальности), и считаю программирование лишь прикладной областью деятельности, а не какой-то там самоцелью или еще чего упаси боже смыслом жизни и т.п. Т.е. в рамках чисто применения - как решения инженерной задачи. А оптимизация там, варианты решения... Пусть этим соотв. люди занимаются.
И, что означает это фраза, начинайте с SDK?
Т.е. ты предлагаешь нам взяв SDK написать под Дримшелл какую-нибудь свою прикладную программу или модуль? Я так понимаю? Просто у меня щас немного трабла с недостатком идей, точнее есть одна, и очень хорошая, но боюсь ее весьма сложно будет реализовать. Тем более в рамках ресурсов приставки.

ЗЫ. Если уж ты ходел увидеть от нас макрос, следовало задание дать так:
написать макрос, пакующий в одну переменную длиной 4 байт 4 различных значения цветовой составляющей, но никак не строку. Тут ключевыми являются именно слова "макрос" и "строка". их как бы осторожно применять надо. А то получается требуется одно а надо совсем другое. А мы еще после и виноваты. Как такое назвать?
ЗЫ2. Хоть и признаюсь, что мы оба (в особенности я) изрядно затупили. Могли бы действительно, все это красиво и лаконично одним сканэфом реализовать. Но идеальных людей не бывает, как и программеров, ведь так?
PS3/ Чё т я не вижу нигде ссылку на SDK на сайте... может кто подскажет...
(Последний раз сообщение было отредактировано 17.01.2011 в 00:00, отредактировал пользователь Rio.)
16.01.2011 23:48
Найти все сообщения Цитировать это сообщение
Rio Не на форуме
Продвинутый
***

Сообщений: 365
Зарегистрирован: 04.04.2009
Рейтинг: 2
Сказал спасибо: 1
Поблагодарили 4 раз(а) в 4 сообщ.
Сообщение: #48
RE: DreamShell 4.0 Beta 4
Dreamshell SDK рулит....

// Pixel packing macro
#define PACK_PIXEL(r, g, b) ( ((r & 0xF8) << 8) | ((g & 0xFC) << 3) | (b >> 3) )
17.01.2011 00:04
Найти все сообщения Цитировать это сообщение
sc_maxim Не на форуме
Пользователь
**

Сообщений: 94
Зарегистрирован: 27.11.2010
Рейтинг: 1
Сказал спасибо: 1
Поблагодарили 4 раз(а) в 4 сообщ.
Сообщение: #49
RE: DreamShell 4.0 Beta 4
Не стоит так нервничать.
Несмотря ни на что опыт получен позитивный Smile
// Pixel packing macro
#define PACK_PIXEL(r, g, b) ( ((r & 0xF8) << 8) | ((g & 0xFC) << 3) | (b >> 3) )
это судя по всему макрос для запаковки 16-ти разрядного цвета, так как там биты не равно мерно распределены R5G6B5. Тут сканэфом не обойтись.
(Последний раз сообщение было отредактировано 17.01.2011 в 00:07, отредактировал пользователь sc_maxim.)
17.01.2011 00:04
Найти все сообщения Цитировать это сообщение
Rio Не на форуме
Продвинутый
***

Сообщений: 365
Зарегистрирован: 04.04.2009
Рейтинг: 2
Сказал спасибо: 1
Поблагодарили 4 раз(а) в 4 сообщ.
Сообщение: #50
RE: DreamShell 4.0 Beta 4
Про опыт согласен))
А хз. Что значит неравномерное распределены?
17.01.2011 00:09
Найти все сообщения Цитировать это сообщение
sc_maxim Не на форуме
Пользователь
**

Сообщений: 94
Зарегистрирован: 27.11.2010
Рейтинг: 1
Сказал спасибо: 1
Поблагодарили 4 раз(а) в 4 сообщ.
Сообщение: #51
RE: DreamShell 4.0 Beta 4
я имел ввиду количество бит разное. на красный идет 5 бит, на зеленый 6 бит, так как глаз наиболее чувствителен к нему, ну и на синий тоже 5.
17.01.2011 00:13
Найти все сообщения Цитировать это сообщение
Rio Не на форуме
Продвинутый
***

Сообщений: 365
Зарегистрирован: 04.04.2009
Рейтинг: 2
Сказал спасибо: 1
Поблагодарили 4 раз(а) в 4 сообщ.
Сообщение: #52
RE: DreamShell 4.0 Beta 4
А, ну так это уже не RGB а как раз R5G6B5, ну да, короч я понял.
Так а все таки, где брать SDK и главное как его юзать.
(Последний раз сообщение было отредактировано 17.01.2011 в 00:17, отредактировал пользователь Rio.)
17.01.2011 00:15
Найти все сообщения Цитировать это сообщение
sc_maxim Не на форуме
Пользователь
**

Сообщений: 94
Зарегистрирован: 27.11.2010
Рейтинг: 1
Сказал спасибо: 1
Поблагодарили 4 раз(а) в 4 сообщ.
Сообщение: #53
RE: DreamShell 4.0 Beta 4
Ну для начала ставишь среду для программинга под Дрим, я качал отсюда.
Потом отсюда сам SDK.
чтоб его юзать нужно как обычно подключать заголовки и использовать функции которые там описаны. В SDK даже есть примеры рабочего модуля и проги. При компиляции нужно подключать библиотеки из SDK стандартным для gcc способом. Я пока ниче не писал на SDK потому это все что я знаю. Думаю SWAT, если ему действительно нужны помощники, напишет более детально.
17.01.2011 00:31
Найти все сообщения Цитировать это сообщение
Rio Не на форуме
Продвинутый
***

Сообщений: 365
Зарегистрирован: 04.04.2009
Рейтинг: 2
Сказал спасибо: 1
Поблагодарили 4 раз(а) в 4 сообщ.
Сообщение: #54
RE: DreamShell 4.0 Beta 4
Думаю да а что такое gcc?/Шось не грузится у меня Dreamshell на эмуле... не говоря уже про pс loader..
17.01.2011 00:39
Найти все сообщения Цитировать это сообщение
sc_maxim Не на форуме
Пользователь
**

Сообщений: 94
Зарегистрирован: 27.11.2010
Рейтинг: 1
Сказал спасибо: 1
Поблагодарили 4 раз(а) в 4 сообщ.
Сообщение: #55
RE: DreamShell 4.0 Beta 4
GCC - это набор компиляторов (GNU Compilers collection), версия для процессора sh4 и arm, входит в тот пакет что я давал ссылку. Как с ним работать можешь почитать в инете. При программировании под KOS и DShell ты будеш юзать врапер, и большиство команд тебе не придется вручную прописывать. К примеру что-б скомпилить прогу которая использует библиотеку libSDL.a, тебе нужно будет написать что-то в таком роде:
kos-cc -o sdl_proga.elf sdl_proga.c -lSDL
------------------------------------------
kos-cc - это врапер для sh-elf-gcc уже с нужными стандартными ключами
-o - это ключ в котором указывается имя выходящего файла sdl_proga.elf
sdl_proga.c - исходник нашей проги
-lSDL - ключ говорящий, что нужно линковать нашу прогу с файлом libSDL.a

Естественно что все команды нужно вводить в командной строке Cygwin, который ставится автоматом с того набора что я ссылку давал.
Обычно конечно делается Makefile и вся прога собирается командой make, но так тоже можно.
17.01.2011 01:08
Найти все сообщения Цитировать это сообщение
SWAT Не на форуме
Администратор
*******

Сообщений: 7126
Зарегистрирован: 04.01.2005
Рейтинг: 30
Сказал спасибо: 130
Поблагодарили 1169 раз(а) в 727 сообщ.
Сообщение: #56
RE: DreamShell 4.0 Beta 4
(16.01.2011 23:48)Rio писал(а):  Постановка задачи звучала так: написать функцию, которая бы преобразовывала бы строку символов в упакованное 32 разрядное слово. Ты же выкинул нам макрос, который пакует в переменную 4 цифры, именно цифры, а не символа. Может мы и изобрели велосипед, ну так что ж теперь, вешаться что ли? Иногда и велосипеды изобретать полезно, для понимания смысла так сказать, и сути производимых действий.
Тем более, я, как и sc_maxim, не тренировался уже в написании программ на си уже более как полугода, не говоря уже о том что я вообще как бы не программер (т.е. не работаю им по специальности), и считаю программирование лишь прикладной областью деятельности, а не какой-то там самоцелью или еще чего упаси боже смыслом жизни и т.п. Т.е. в рамках чисто применения - как решения инженерной задачи. А оптимизация там, варианты решения... Пусть этим соотв. люди занимаются.
И, что означает это фраза, начинайте с SDK?
Т.е. ты предлагаешь нам взяв SDK написать под Дримшелл какую-нибудь свою прикладную программу или модуль? Я так понимаю? Просто у меня щас немного трабла с недостатком идей, точнее есть одна, и очень хорошая, но боюсь ее весьма сложно будет реализовать. Тем более в рамках ресурсов приставки.

ЗЫ. Если уж ты ходел увидеть от нас макрос, следовало задание дать так:
написать макрос, пакующий в одну переменную длиной 4 байт 4 различных значения цветовой составляющей, но никак не строку. Тут ключевыми являются именно слова "макрос" и "строка". их как бы осторожно применять надо. А то получается требуется одно а надо совсем другое. А мы еще после и виноваты. Как такое назвать?
ЗЫ2. Хоть и признаюсь, что мы оба (в особенности я) изрядно затупили. Могли бы действительно, все это красиво и лаконично одним сканэфом реализовать. Но идеальных людей не бывает, как и программеров, ведь так?

Rio... Я просто сначала строку разобрал по цветам, потом макросом упаковал эти цвета в 32 бита... Результат: строка запакована в 32 бита. Во втором примере я сразу упаковал все цвета, причем без макроса. Разве я не выполнил условие? Оба раза я запаковал строку в 32 бита, а значит условие выполнено.
Я вам не давал задачу на конкретную реализацию. На саму реализацию я то и хотел посмотреть, не важно будь то макрос, функция или полный алгоритм всех действий.

Ты слишком буквально понял задание. Если ты привязался к слову "функция", то по сути должно было быть так:

PHP код:
uint32_t StrToRGBA(char *str) {
    
    
uint32_t rgba 0x00000000;

    if(
sscanf(str"#%08x", &rgba) < 1) {
        
printf("Error! Not enough colors or color is not valid.\n");
        return -
1;
    }
    return 
rgba;


Ну что, выполняет она мое условие? Smile)
Ладно в общем, проехали Smile

[Изображение: barbers.png]
17.01.2011 10:46
Вебсайт Найти все сообщения Цитировать это сообщение
SWAT Не на форуме
Администратор
*******

Сообщений: 7126
Зарегистрирован: 04.01.2005
Рейтинг: 30
Сказал спасибо: 130
Поблагодарили 1169 раз(а) в 727 сообщ.
Сообщение: #57
RE: DreamShell 4.0 Beta 4
Собирается все с помощью Makefile. Заходите в папку с примером допустим, набираете make и он собирается.
По другому вы не соберете, модули и команды собираются особым способом, поэтому сами написав команды gcc вы не соберете так как нужно.
В SDK все настроено, вам нужно просто папочку с ним кинуть в папку с KOS.

[Изображение: barbers.png]
(Последний раз сообщение было отредактировано 17.01.2011 в 10:53, отредактировал пользователь SWAT.)
17.01.2011 10:51
Вебсайт Найти все сообщения Цитировать это сообщение
Rio Не на форуме
Продвинутый
***

Сообщений: 365
Зарегистрирован: 04.04.2009
Рейтинг: 2
Сказал спасибо: 1
Поблагодарили 4 раз(а) в 4 сообщ.
Сообщение: #58
RE: DreamShell 4.0 Beta 4
Сват а в Дримшелл АПИ есть поддержка MIDI?
18.01.2011 02:41
Найти все сообщения Цитировать это сообщение
SWAT Не на форуме
Администратор
*******

Сообщений: 7126
Зарегистрирован: 04.01.2005
Рейтинг: 30
Сказал спасибо: 130
Поблагодарили 1169 раз(а) в 727 сообщ.
Сообщение: #59
RE: DreamShell 4.0 Beta 4
Я как то не озадачивался таким Smile))
А вообще попробуй через SDL_mixer, эта билиотека есть в DS и ее можно использовать везде (cmd/module/app).

PHP код:
typedef enum {
    
MUS_NONE,
    
MUS_CMD,
    
MUS_WAV,
    
MUS_MOD,
    
MUS_MID,
    
MUS_OGG,
    
MUS_MP3
Mix_MusicType

MP3 она не поддерживает скажу сразу Smile

[Изображение: barbers.png]
(Последний раз сообщение было отредактировано 18.01.2011 в 07:30, отредактировал пользователь SWAT.)
18.01.2011 07:30
Вебсайт Найти все сообщения Цитировать это сообщение
Rio Не на форуме
Продвинутый
***

Сообщений: 365
Зарегистрирован: 04.04.2009
Рейтинг: 2
Сказал спасибо: 1
Поблагодарили 4 раз(а) в 4 сообщ.
Сообщение: #60
RE: DreamShell 4.0 Beta 4
Сват, 5 утра ,я в шоке))
Сват, а там есть поддержка GDI? Ну чтобы рисовать можно было линии там всякие прямые прямо по контексту устройства?
ЗЫ. А вообще документация - жжот)) Ни тебя ни описания ничего)) Ищи как хочешь)) Тупо h-файл в html сохранен)) Разделили бы хоть по разделам, где графика где звук где шо))
(Последний раз сообщение было отредактировано 18.01.2011 в 16:50, отредактировал пользователь Rio.)
18.01.2011 16:44
Найти все сообщения Цитировать это сообщение
Создать ответ 


Похожие темы
Тема: Автор Ответов: Просмотров: Посл. сообщение
Звезда DreamShell v4.0.0 Release SWAT 121 18504 19.03.2024 19:45
Посл. сообщение: JohnOliv3ira
Радуга DreamShell на GitHub SWAT 69 97736 16.03.2024 17:14
Посл. сообщение: yo4yo4
Баг ISO Loader 0.8.x Beta + preview of DreamShell v4.0 RC 5 SWAT 918 514099 01.02.2024 13:22
Посл. сообщение: SWAT
  DreamShell on Hacker news SWAT 0 830 10.01.2024 06:52
Посл. сообщение: SWAT
  ISO Loader 0.7.x Beta megavolt85 1195 1278594 04.12.2023 19:10
Посл. сообщение: Ro Magnus Larsson
  Custom DreamShell Themes pcwzrd13 10 22885 23.11.2023 19:45
Посл. сообщение: pcwzrd13
  DreamShell v4.0 UI controls manual SWAT 0 1046 21.11.2023 07:04
Посл. сообщение: SWAT
Информация DreamShell в Discord SWAT 0 2992 06.03.2023 07:53
Посл. сообщение: SWAT
  New to Dreamshell/Retrodream DeanBMT 2 4141 26.01.2023 00:35
Посл. сообщение: DeanBMT
Баг ISO Loader 0.6.x Beta SWAT 482 568274 01.12.2022 13:50
Посл. сообщение: SWAT

Переход:


Пользователи просматривают эту тему: 1 Гость(ей)