Все для Sony Ericsson, патчи, эльфы, моддинг, прошивка
Логин: Пароль: Запомнить: Привет гость! Зарегистрируйся или авторизируйся для получения доп. возможностей!
Разделы
PDA версия сайта
Новости
Статьи
Файлы
Патчи
Патчи A2
Патчи db2020
Эльфы
Исходники эльфов
Wiki
Форум
Обратная связь
Развернуть/Свернуть
 
Развернуть/Свернуть

Полезные функции : Эльфостроение : Эльфы : Форум : Для Sony Ericsson патчи эльфы моддинг прошивка
/  Список форумов
   /  Эльфы
      /  Эльфостроение
   /  Полезные функции
На печать 
Правила 
Страница 2 из 2: « 1 [2]

MO_oC


Elfmaker


Регистрация: 2.9.10
Сообщений: 30
Репутация: 538





 
  #11 [07.09.10, 08:53] Re: Полезные функции   

 
DuXeN0N, W660_R8BB001_ORANGE : atoi is 44215D85



Спасибо сказали: farid

diezil


Patcher


Регистрация: 22.9.07
Сообщений: 83
Репутация: 2050
Откуда: England




 
  #12 [25.04.11, 14:47] Re: Полезные функции   

 
Код:
#define TextID_CreateImageID( imageid ) ( imageid + 0x78000000 )


w800 r1db001, w810 r4ea031, w580 r8be001, k850 r1fa035 :lol:

eg...
Код: 
MessageBox( EMPTY_TEXTID, TextID_CreateImageID( 0xF35F ), NOIMAGE, 1, 5000, book );


enum ALIGN {
LEFT=0,
RIGHT,
CENTER
};
DrawString( 
TextID_CreateImageID( 0xE5D5 ), RIGHT, 
1, 1, 
240, 2, 
0, 0, 
0, 0 );


en:
I think its the same for every phone, but just in case, it can be found here

ru:
Я думаю, его же для каждого телефона, но на всякий случай, он может быть найден здесь

w800 r1db001 0x44EF3DEC
w810 r4ea031 0x452FE2F8
w580 r8be001 0x4506A6C8
k850 r1fa035 0x1125FCB4

en:
You can also merge with a TEXTID using ENC_TEXTID flag, used for drawing icons in ListMenu_SetItemSecondLineText etc... =)
PS: I only tested DrawString(...) on DB2020, cannot guarantee it will work on other platforms using dll etc...

ru:
Вы также можете присоединиться к TEXTID использованием ENC_TEXTID флаг, используется для рисования иконок в ListMenu_SetItemSecondLineText итд... =)
PS: Я только проверил DrawString (...) на DB2020, не может гарантировать, она будет работать на других платформах использованием DLL и т.д. ..

//-------

oh and

Код:
#define TextID_CreateInt24ID( num ) ( num + 0x70000000 )


[ Редактировано diezil в 25.4.11 12:01 ]




C902 R3EG004 AS
Извините за мой русский (Google Translate :oops:)
Спасибо сказали: zylka, farid

den_po


Developer/Admin


Регистрация: 27.3.06
Сообщений: 3279
Репутация: 10763
Откуда: Чебоксары




 
  #13 [26.04.11, 00:06] Re: Полезные функции   

 
diezil пишет:
Код:
#define TextID_CreateImageID( imageid ) ( imageid + 0x78000000 )


svn\SE\SCalka\calc_object.c
svn\SE\Tamagochi\gui.c
svn\SE\Tamagochi\main.c
svn\SE\Gono4ki\MyFUNC.c
svn\SE\Tamagochi\status.c
svn\SE\SCalka\calc_menu.cpp
svn\SE\mcse\gui.cpp
svn\SE\BcfgEdit\main.cpp
svn\SE\SoftEdit\menu.cpp
svn\SE\SoftEdit\menu_onLB.cpp
svn\SE\BcfgEdit\visual.cpp

;-)




promt is better than google translate

diezil


Patcher


Регистрация: 22.9.07
Сообщений: 83
Репутация: 2050
Откуда: England




 
  #14 [29.12.12, 06:41] Re: Полезные функции   

 
basic function for converting, resize and stretching images using "GC_PutChar()" and saving them back to file.
attached images used in example code (in = 240*320 jpg - out 480*640 png )

code is for C902AS
Код: 

typedef struct
{
int unk0;
int unk1;
int width;
int height;
void* pixel_data;
int sizeof_pixel_data;
} CANVAS_DESC;


#define GET_BITDEPTH( __PCANVAS_DESC__ ) \
    (((__PCANVAS_DESC__->sizeof_pixel_data)<<3) \
    /(__PCANVAS_DESC__->width*__PCANVAS_DESC__->height))


void my_png_write_data(png_structp png_ptr, png_bytep data, png_size_t length)
{
int* io_ptr = (int*)png_get_io_ptr(png_ptr);
w_fwrite( *io_ptr, data, length );
}

void my_png_flush(png_structp png_ptr)
{
}

int ImageID_SaveAsPNG( IMAGEID iid, wchar_t* fullpath, int new_width, int new_height )
{
int width = new_width; if ( width == 0 ) width = GetImageWidth( iid );
int height = new_height; if ( height == 0 ) height = GetImageHeight( iid );

GC* pGC = GC_CreateMemoryGC( width, height, 32, 0, 0, 0 );
int* ptr = (int*)pGC->pcanvas;
int* ptr1 = (int*)ptr[3];
int* ptr2 = (int*)ptr1[1];

CANVAS_DESC* canvas_desc = (CANVAS_DESC*)ptr2[5];
#ifdef _PRESERVE_ALPHA_
memset( (void*)canvas_desc->pixel_data, 0, canvas_desc->sizeof_pixel_data );
#else
GC_DrawFRect( pGC, 0xFF000000, 0, 0, canvas_desc->width, canvas_desc->height );
#endif
GC_PutChar( pGC, 0, 0, canvas_desc->width, canvas_desc->height, iid );

int my_file = w_fopen( fullpath, WA_Create, 0x1FF, 0 );
if ( my_file >= 0 )
{
png_structp png_ptr;
png_infop info_ptr;
png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
info_ptr = png_create_info_struct(png_ptr);
png_set_IHDR(png_ptr, info_ptr, canvas_desc->width, canvas_desc->height,
     8, PNG_COLOR_TYPE_RGBA, PNG_INTERLACE_NONE,
     PNG_COMPRESSION_TYPE_BASE, PNG_FILTER_TYPE_BASE);
png_set_bgr(png_ptr);
png_set_write_fn(png_ptr, &my_file, my_png_write_data, my_png_flush);

png_write_info(png_ptr, info_ptr);

int size = png_get_rowbytes(png_ptr,info_ptr);
int i_ptr=0;
for (int y=0; y<canvas_desc->height; y++)
{
png_byte* ptr = (png_byte*)i_ptr+(int)canvas_desc->pixel_data;
png_write_row(png_ptr, ptr);
i_ptr += size;
}
png_write_end(png_ptr, NULL);
png_destroy_write_struct(&png_ptr, &info_ptr);
w_fclose( my_file );
}
GC_FreeGC( pGC );
return 0;
}

void func()
{
IMAGEID iid;

ImageID_Get( L"/card/other", L"in_jpeg.jpg", &iid );
ImageID_SaveAsPNG( iid, L"card/other/out_png.png", 
  GetImageWidth( iid )*2, GetImageHeight( iid )*2);
ImageID_Free( iid );
}


CANVAS_DESC* can also be found in structs "GVI_BMP and GVI_GC", it can be useful for alpha blending with GVI =)
Код: 
typedef struct
{
int unk0;
int unk1;
int unk2;
int unk3;
int unk4;
CANVAS_DESC* pcanvas_desc;
} UNK_STRUCT;

typedef struct
{
int unk0;
UNK_STRUCT* unk1;
int unk2;
int unk3;
int width;
int height;
char unk4[ 64 ];
} _GVI_GC;

typedef struct
{
int unk0;
int unk1;
int unk2;
void* unk3;
void* unk4;
CANVAS_DESC* pcanvas_desc;
int unk6;
int unk7;
} _GVI_BMP;


I'm new to pnglib and I get mem leakin my elf, I don't know if this is because of the setup of my pnglib/zlib or if my png code is bad :oops:

EDIT:
Corrected memory leak in the above code =)

[ Редактировано diezil в 29.12.12 18:11 ]



Прикрепленный к сообщению файл:
out_png.pngin_jpeg.jpg


C902 R3EG004 AS
Извините за мой русский (Google Translate :oops:)
Спасибо сказали: a6b6, Therion, Metaler
Страница 2 из 2: « 1 [2]


Похожие темы
 ТемаОтветыАвторПросмотрыОбновление
  Различные функции19E1kolyan2646809.08.12, 16:59
  мои полезные мануалы для К790/K8x0i42D7A6724418.02.11, 10:45

  • Поиск
  • Права
Вы не можете начинать темы.
Вы не можете редактировать свои сообщения.
Вы не можете создавать опросы.
Вы не можете вкладывать файлы в сообщения.
Вы не можете отвечать на сообщения.
Вы не можете удалять свои сообщения.
Вы не можете голосовать.

Главная Новости Статьи Файлы Патчи Форум Опросы PDA
- Генерация страницы: 0.03 секунд | 10 Запросов | HTML: 36.63 КБ -