Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Indigo Rose AutoPlay Media Studio (часть 5)

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191

Открыть новую тему     Написать ответ в эту тему

Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AutoPlay Media Studio





  AutoPlay Media Studio - мощная программа для создания меню автозагрузки CD/DVD. Эта программа создаст все необходимые файлы для автозапуска и его графическую оболочку, и даже сама встроит в нее использованные в проекте нестандартные шрифты. Пользователю останется лишь записать готовый проект на свой CD/DVD.
  AutoPlay Media Studio не требует от пользователя никаких особых знаний и очень прост в освоении, имеет дружественный и интуитивно понятный интерфейс. Приложение, которое будет создано AutoPlay Media Studio в конце работы, представлено в виде объектной модели. Эта модель состоит из группы отдельных страниц. На этих страницах можно размещать объекты, которые могут представлять собой графику, музыку, текст, видео, Flash, HTML и пр. Любому элементу можно назначить определенное действие. Например, при наведении на рисунок курсора мыши, может возникать текст с комментариями, при нажатии на кнопку "Play" начнет проигрываться фильм и т.д. Программа предоставляет сотни различных действий, которые можно связать с объектами. В AutoPlay Media Studio присутствует большое количество уже готовых шаблонов.
  AutoPlay Media Studio имеет широкие возможности и богатый набор инструментов для разработки мультимедийных проектов. Использовать программу можно не только для создания файлов автозапуска, но и, например, для разработки интерактивного обучающего софта или мультимедийной презентации.

Язык интерфейса: Английский
Страница загрузки: AutoPlay Media Studio Commerical Trial 8.6


Скриптовый язык LUA:
на Lua.Org (Official) - на Lua.Ru

Ресурсы, посвященные AMS (содержат коллекции примеров, дополнений, уроков):
  • icynorth.com
  • imagine-programming.com
  • mindquake.com.br

    Инструменты:
  • ScriptOMatic Tool - создает скрипт обращения ко всем свойствам выбранного WMI-класса

    Ответы на наиболее часто задаваемые вопросы


    Раскраска AMS-кода для публикации на форуме от UModeL: версия 1 и версия 2.

  • Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 06:17 05-08-2012 | Исправлено: Komandor, 12:11 30-03-2024
    vazzzzz

    Редактировать | Цитировать | Сообщить модератору
    закрадываются сомнения.. для того чтобы заставить светиться пиксели по-своему нужно создать несколько структур для bitmap.. уфф.. http://msdn.microsoft.com/ru-ru/library/windows/desktop/dd183392(v=vs.85).aspx
     
    Добавлено:
    и в данном случае нужно было создавать структуру в структуре, т.е. эти элементы структуры (biWidth, biHeight и пр.) - это элементы структуры BITMAPINFOHEADER, поинтер на которую, должен лежать в элементе bmiHeader структуры BITMAPINFO
     
    Добавлено:
    Zloy_Gelud
     
    Не подскажешь как можно объявить структуру внутри структуры? Можно ли использовать нечто подобное:
     

    Код:
     
    MemoryEx.DefineStruct {
       DWORD("biSize");
       ...
       UNION {
          ...
       };
    };
     

     
    UNION какой тип данных определяет?

    Отправлено: 16:01 19-02-2013
    Zloy_Gelud



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    vazzzzz

    Цитата:
    и в данном случае нужно было создавать структуру в структуре

    Необязательно. Можно создать структуру BITMAPINFO просто скопировав поля из структуры BITMAPINFOHEADER + добавить поле RGBQUAD.

    Цитата:
    UNION какой тип данных определяет?

    В справке все есть.


    Данный код нарисует серый квадрат:

    Код:
    local hWnd = Application.GetWndHandle();
    local hDC  = tonumber(DLL.CallFunction("User32.dll", "GetDC", hWnd, DLL_RETURN_TYPE_INTEGER, DLL_CALL_STDCALL));
    local nWidth  = 100;
    local nHeight = 100;
     
    -- описание структуры BITMAPINFO
    local BITMAPINFO = MemoryEx.DefineStruct{
        DWORD("biSize");
        INT  ("biWidth");
        INT  ("biHeight");
        WORD ("biPlanes");
        WORD ("biBitCount");
        DWORD("biCompression");
        DWORD("biSizeImage");
        INT  ("biXPelsPerMeter");
        INT  ("biYPelsPerMeter");
        DWORD("biClrUsed");
        DWORD("biClrImportant");
    };
     
    -- создаем структуру
    local hBITMAPINFO = BITMAPINFO:New();
    -- заполняем структуру
    hBITMAPINFO.biSize = MemoryEx.StructSize(BITMAPINFO);
    hBITMAPINFO.biWidth = nWidth;
    hBITMAPINFO.biHeight = -nHeight;
    hBITMAPINFO.biPlanes = 1;
    hBITMAPINFO.biBitCount = 24;
    -- указатель на буфер
    local pBITMAPINFO = hBITMAPINFO:GetPointer();
     
    -- выделяем память для массива RGB
    pBITS = MemoryEx.Allocate(3*(nWidth * nHeight));
    -- заполняем сервым цветом (192)
    MemoryEx.Fill(pBITS, MemoryEx.Size(pBITS), 192, MEMEX_BYTE);
     
    local sRes = DLL.CallFunction("gdi32.dll", "SetDIBitsToDevice", hDC..", 10, 10, "..nWidth..", "..nHeight..", 0, 0, 0, "..nHeight..", "..pBITS..", "..pBITMAPINFO..", 0", DLL_RETURN_TYPE_INTEGER, DLL_CALL_STDCALL)
     
    MemoryEx.Free(pBITS);
    hBITMAPINFO:Free();
     
    Dialog.Message("Debug", sRes, MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);

    Только все равно вся эта писанина пропадет как только наше окно получит сообщение WM_PAINT. Например, после перкрытия другим окном или когда съедет за границы экрана и т.д. Т.е. необходимо еще писать ообработчик WM_PAINT.

    Всего записей: 3266 | Зарегистр. 30-05-2007 | Отправлено: 19:11 19-02-2013 | Исправлено: Zloy_Gelud, 19:11 19-02-2013
    vazzzzz

    Редактировать | Цитировать | Сообщить модератору
    Zloy_Gelud
     
    благодарю за пример, теперь хоть нашел свои ошибки - основная была в том, что я неправильно понял суть использовании "нужных" элементов в структуре - оказывается объявлять нужно все элементы, а вот присваивать значения можно не всем (а я объявлял не все).
     
    Попытался заполнять "кадры" средствами AMS, но что-то как-то все оч медленно происходит, даже простая связка выполняется СЕКУНДЫ:
     

    Код:
     
    --байт на пиксель теперь по 4 сделал (biBitCount = 32)
    bycnt = 0;
    MemoryEx.Zero(dBHandle, MemoryEx.Size(dBHandle));
    for cnt1 = 1, dWidth * dHeight do
       MemoryEx.DWORD(dBHandle + bycnt, Math.RGBToNumber(0, 0, 0));
       bycnt = bycnt + 4;
    end
     

     
    Пересчет цвета по другому еще медленнее:
     

    Код:
     
    color = 65536 * red + 256 * green + blue
     

     
    Пробовал и вариант сначала сформировать array в AMS, а потом целиком записать с помощью MemoryEx.Table, но там время формирования самой array еще больше.
     
    И это все еще не учитывая то, что перед формированием кадра нужно сделать кучу сложных математических операций.
     
    Вобщем AMS для такой задачи как быстрая отрисовка графики никак не годится? Это у LUA-движка такие тормоза, или у меня в голове?))
     
    Так не хочется лезть в давно забытый Visual Basic и городить ActiveX-прокладку.. Хотя отлавливать такие сообщения как WM_PAINT похоже только так получится.. Или с помощью MemoryEx можно прочитать это событие по определенному адресу?

    Отправлено: 22:33 19-02-2013
    Zloy_Gelud



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    vazzzzz -- мне вообще кажется, что ты все на своей волне городишь.

    Всего записей: 3266 | Зарегистр. 30-05-2007 | Отправлено: 22:46 19-02-2013
    vazzzzz

    Редактировать | Цитировать | Сообщить модератору
    Zloy_Gelud
     
    В каком смысле?) Пытаюсь вникнуть просто.. Пытаюсь задавать вопросы и надеюсь на ответы умных людей, а то мозга у меня походу не хватает. Почему на своей волне? Мне оч нужна помощь! Хотя бы понять реальные возможности AMS и хватит ли их для реализации моей задачи. Я что-то упустил на чем ты акцентировал внимание? Если так, то я не специально, серьезно.

    Отправлено: 23:06 19-02-2013
    Zloy_Gelud



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    vazzzzz

    Цитата:
    хватит ли их для реализации моей задачи.

    Если окажется, что хватит, то ты перед этим взорвешь себе мозг, а может и еще кому.

    Цитата:
     Хотя отлавливать такие сообщения как WM_PAINT похоже только так получится

    MemoryEx позволяет хучить WM_ сообщения (Subclass.Create).
    К тому же битмап заполняется вроде как BGR цветом, а не RGB.

    Код:
    for i = 1, 3*(nWidth * nHeight), 3 do
        MemoryEx.DWORD(pBITS + (i - 1), 0);            --blue
        MemoryEx.DWORD(pBITS + i, 192);                --green
        MemoryEx.DWORD(pBITS + (i + 1), 255);        --red
     
    end

     
    Добавлено:

    Цитата:
    Попытался заполнять "кадры" средствами AMS, но что-то как-то все оч медленно происходит, даже простая связка выполняется СЕКУНДЫ:  

    У меня моментально отрисовывает.

    Всего записей: 3266 | Зарегистр. 30-05-2007 | Отправлено: 11:51 20-02-2013
    Zloy_Gelud



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    PS. Можно еще так заполнить таблицу цветов.
    Добавить функцию:

    Код:
    BGR2RGB = function (nColor)
        return Bitwise.Or(Bitwise.And(nColor, 0x00FF00), Bitwise.ASL(Bitwise.And(nColor, 0x0000FF), 16), Bitwise.ASR(Bitwise.And(nColor, 0xFF0000), 16));
    end

    Изменить в предыдущем коде соответсвующий участок на:

    Код:
       for i = 1, 3 * (nWidth * nHeight), 3 do
            MemoryEx.DWORD(pBITS + (i - 1), BGR2RGB(Math.HexColorToNumber("ffc0c0")));
        end

    Добавить в конец кода:

    Код:
    DLL.CallFunction("user32.dll", "ReleaseDC", hWnd..","..hDC, DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL);


    Всего записей: 3266 | Зарегистр. 30-05-2007 | Отправлено: 14:31 20-02-2013 | Исправлено: Zloy_Gelud, 14:32 20-02-2013
    vazzzzz

    Редактировать | Цитировать | Сообщить модератору
    Zloy_Gelud
     
    Я в восторге от тебя, спасибо!!!))
     

    Цитата:
    Добавить в конец кода

     
    на енто у меня мозга хватило) не все так плохо у меня))
     

    Цитата:
    Можно еще так заполнить таблицу цветов

     
    щас буду копаться, благодарю за варианты, а то у меня реально долго массив из width*height*4b заполняется, я прям в ams разочаровался.. надеюсь это разочарование временное и я что-то не так делаю.. хотя я понимаю, что массив который я занимаю под rgb с помощью memoryex это массив из DWORD в физической памяти, а массив который я формирую при расчете в ams это массив значений совсем не по 4 байта каждый на каждый элемент.. В это наверное дело? Отсюда и медленное заполнение массива прежде чем он уляжется в область, зарезервированную под rgb..
     

    Цитата:
    ты перед этим взорвешь себе мозг

     
    ты прав, я у memoryex уже нарыл функцию вставки фрагментов flat asm.. а с ним у меня дела вроде получше чем с Си (правда я не под виндовс пишу, а под 51, avr, msp и arm начал недавно грызть). Но пока не тороплюсь в эту сторону, потому как ассемблер ассемблером, а чтоб на нем писать я думаю все равно придется влезть в дебри высокого уровня (ну хотя бы для того, чтоб себе кусок памяти под выполняемый фрагмент как-то урвать.. вобщем боюсь как бы я еще больше себе жизнь не усложнил).
     

    Цитата:
    а может и еще кому

     
    ахахаха! Кто бы это мог быть *интригующе и слегка зловеще*
     
    Добавлено:
    Вот скажи мне как на духу - чему у тебя разница (t2 - t1) равна. У меня 3,5 (три с половиной) секунды. И как с этим жить то дальше?))
     
    Добавлено: вопрос некорректный, поэтому доп.инфо - разрешение 800х600х32b
     

    Код:
     
    --
    Dialog.Message("Start!", "Go go go!", MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
    --точка отсчета (t1)
    --
    for i = 1, 4 * (dWidth * dHeight), 4 do
       MemoryEx.DWORD(dBHandle + (i - 1), BGR2RGB(Math.HexColorToNumber("ffc0c0")));
    end
    --
    --точка завершения (t2)
    Dialog.Message("Stop!", "Finish! Uh-h-h..", MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
    --
     

    Отправлено: 16:51 20-02-2013 | Исправлено: vazzzzz, 18:13 20-02-2013
    Zloy_Gelud



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    vazzzzz
    Мда, 800х600 отрисовывает долго:
    Сделал 3 прохода.
     
    32 бита:
    1) 2796 мс
    2) 2890 мс
    3) 2765 мс
     
    24 бита отрисовывает приблизительно столько же.

    Всего записей: 3266 | Зарегистр. 30-05-2007 | Отправлено: 19:54 20-02-2013
    vazzzzz

    Редактировать | Цитировать | Сообщить модератору
    Zloy_Gelud
     
    Вот и я о том же.. Тут хоть в 10 раз найди способ ускорить - не поможет.. Да даже в х100 не поможет, учитывая то, что перед формированием/выводом кадра нужно просчитать значение каждого пиксела по довольно увесистому алгоритму...... печально. Хотя я где-то на форумах читал, что при использовании SetDIBitsToDevice, не напрягаясь, можно выводить неплохой цвет с вполне себе хорошим разрешением 150 кадров в секунду (учитывая "моргание" дисплея 100Гц + время на вычисление и подготовку кадра этого впринципе должно хватить с небольшим запасом). Проверить это средствами ams похоже не получится, ну разве что с memoryex и написанием процедур формирования и вывода кадра на asm. Походу выход один - писать библиотеку в VB, которая будет и увесистые алгоритмы вычислять и графику выводить. Логично? Скажи как специалист (а не для того, чтобы я мозги никому не взрывал).
     
    Добавлено:
    И чисто для интереса - а почему AMS так тормозит? Дело в движке? Или в том, что использует в основном переменные типа variant с резервированием под них большого кол-ва памяти? Вопрос исключительно для расширения кругозора

    Отправлено: 20:12 20-02-2013
    Zloy_Gelud



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    И чисто для интереса - а почему AMS так тормозит? Дело в движке?

    Да, дело в движке. LUA (движок AMS) увы слишком долго обрабатывает цикл из 1.440.000 элементов (4 * 800 * 600). Здесь уже нечего не поделаешь. Или же писать на либу на другом ЯПе...

    Всего записей: 3266 | Зарегистр. 30-05-2007 | Отправлено: 22:47 20-02-2013
    vazzzzz

    Редактировать | Цитировать | Сообщить модератору
    Zloy_Gelud
     
    Эх.. ну тогда больше не буду мозги тебе взрывать) блин, если б не мое маниакальное желание все сделать самому - купил бы движок графический у умных людей и юзал бы его через ams, тем более что задача с обработкой графики не серийного характера, пока еще вообще - чисто для себя попробовать. В любом случае спасибо тебе за кучу полезной для кругозора информации, по-любому еще пригодится пусть и применительно не к конкретно этой задаче!

    Отправлено: 22:55 20-02-2013
    tavria2



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    vazzzzz

    Цитата:
    И чисто для интереса - а почему AMS так тормозит?  

    Основные тормоза возникают в "lua-прокладке" между AMS и плагином.  
     
    В свое время, известный разработчик плагинов (reteset) - потерпел фиаско с плагином "Scintilla", указав на проблему связанную с быстродействием, из-за чего плагин оказался нестабильным и разработчик отказался от его дальнейшего сопровождения.
     
    P.S. Для повышения быстродействия, нужно стараться сократить кол-во обращений к функциям плагина (оптимизировать код, если это возможно).

    Всего записей: 1127 | Зарегистр. 19-01-2005 | Отправлено: 23:07 20-02-2013
    vazzzzz

    Редактировать | Цитировать | Сообщить модератору
    tavria2
     
    Здравствуйте! Я очень рад с вами общаться) Потому как подозреваю, что вы спасли одно из моих творений, в котором я задействовал ваш спасительный для меня плагин SmtpT. Вы его автор, я прав? Мне его посоветовал на форуме indigorose один русскоязычный товарищ, может ваш знакомый - этого утверждать точно не могу. Отличный плагин, решил все мои конфликты с обычным SMTP плагином от amsplugins (были лишние пробелы в заголовках писем, не было доп.таймаута ожидания ответа сервера и что мне особенно понравилось - это выбор кодировки).
     

    Цитата:
    Основные тормоза возникают в "lua-прокладке"

     
    тут с вами не соглашусь. Как раз таки включение обращений к плагину в цикл формирования rgb позволяет в моем случае сократить общее время выполнения цикла. А вот если я сначала в цикле буду создавать обычный массив (без плагина), то полное выполнение цикла отнимает еще больше времени.
     
    Добавлено:

    Цитата:
    оптимизировать код

     
    Врядли тут можно оптимизировать алгоритмы так, чтоб ускориться раз так в 300-400 если я не прав - то я буду только рад этому (честно).

    Отправлено: 23:22 20-02-2013
    Octanium



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Спрошу еще раз, можно-ли в АМС создавать интернет подключения? (PPPoE с параметрами естественно).

    Всего записей: 50 | Зарегистр. 07-02-2011 | Отправлено: 23:45 20-02-2013
    tavria2



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    vazzzzz

    Цитата:
    Вы его автор, я прав?
    Да. Я рад, что он вам помог.

    Цитата:
    тут с вами не соглашусь. Как раз таки включение обращений к плагину в цикл формирования rgb позволяет в моем случае сократить общее время выполнения цикла. А вот если я сначала в цикле буду создавать обычный массив (без плагина), то полное выполнение цикла отнимает еще больше времени.

    Соглашаться или нет, это ваше дело. Сейчас у меня нет времени на разбор полетов, как вы там создаете, обрабатываете, передаете массив...
    Я могу сказать следующее, если создать таблицу(массив) и заполнить ее в цикле на стороне AMS, а затем передать ее в плагин для дальнейшей обработки  - будет быстрее, чем в цикле передавать по одному элементу таблицы в плагин и разница в скорости обработки будет очень большой.

    Всего записей: 1127 | Зарегистр. 19-01-2005 | Отправлено: 23:55 20-02-2013
    vazzzzz

    Редактировать | Цитировать | Сообщить модератору
    tavria2
     

    Цитата:
    Сейчас у меня нет времени на разбор полетов

     
    Это была не провокация вас к разбору полетов
    (в моем случае это скорее не полет - на пузе пока ползаю вокруг задачи своей)
     
    *sorry за офф-топ (я правильно употребил это выражение? если что не казните, я к своду правил общения на форумах еще не успел принаравиться)

    Отправлено: 00:07 21-02-2013
    Zloy_Gelud



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ПереписАл функу конвертирования RGB в BGR без использования плагина:

    Код:
    RGB2BGR = function (...)
        if (#arg == 3) then                         -- RGB color
            return (arg[3] * 65536 + arg[2] * 256 + arg[1]);
        else                                        -- HEX color
            local nRed, nGreen, nBlue
            nRed   = arg[1] % 256;
            nGreen = ((arg[1] - nRed) % 65536) / 256;
            nBlue  = Math.Round((arg[1] - nGreen) / 65536, 0);
            return (nBlue * 65536 + nGreen * 256 + nRed);
        end
        return 0;
    end

    Теперь пробуем ее в цикле:

    Код:
    t1 = DLL.CallFunction("kernel32.dll", "GetTickCount", "", DLL_RETURN_TYPE_INTEGER, DLL_CALL_STDCALL);
    for i = 1, 4 * (800 * 600), 4 do
        -- преобразовываем RGB-цвет в BGR
        RGB2BGR(192, 192, 192);
    end
    t2 = DLL.CallFunction("kernel32.dll", "GetTickCount", "", DLL_RETURN_TYPE_INTEGER, DLL_CALL_STDCALL);
    Dialog.Message("Notice", t2-t1, MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);

    Результат: ~1750 мс.
     
    Если использовать функу так:

    Код:
    t1 = DLL.CallFunction("kernel32.dll", "GetTickCount", "", DLL_RETURN_TYPE_INTEGER, DLL_CALL_STDCALL);
    for i = 1, 4 * (800 * 600), 4 do
        -- преобразовываем десятичный тип цвета в BGR
        RGB2BGR(Math.HexColorToNumber("c0c0c0"));
    end
    t2 = DLL.CallFunction("kernel32.dll", "GetTickCount", "", DLL_RETURN_TYPE_INTEGER, DLL_CALL_STDCALL);
    Dialog.Message("Notice", t2-t1, MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);

    Результат: ~4063 мс.
    Т.е. чем больше математических операций, тем дольше цикл работает.  
    Сделал вывод: что мы будет плагин использовать для конвертирования цвета, что стандартные возможности AMS, - один хрен все печально.

    Всего записей: 3266 | Зарегистр. 30-05-2007 | Отправлено: 10:10 21-02-2013 | Исправлено: Zloy_Gelud, 12:21 21-02-2013
    vazzzzz

    Редактировать | Цитировать | Сообщить модератору

    Цитата:
    один хрен все печально

     
    )) точнее и не скажешь)
     
    Добавлено: начал рыть в сторону движка SR2D (автор Mikle)

    Отправлено: 12:06 21-02-2013 | Исправлено: vazzzzz, 14:11 21-02-2013
    Zloy_Gelud



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    vazzzzz
    Лучше рой в сторону плагина Canvas.

    Всего записей: 3266 | Зарегистр. 30-05-2007 | Отправлено: 18:40 21-02-2013
    Открыть новую тему     Написать ответ в эту тему

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191

    Компьютерный форум Ru.Board » Компьютеры » Программы » Indigo Rose AutoPlay Media Studio (часть 5)


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru