diff options
| author | Juan Linietsky | 2014-10-03 08:58:41 -0300 |
|---|---|---|
| committer | Juan Linietsky | 2014-10-03 08:58:41 -0300 |
| commit | af4a97bef9bfb06e2737ad709dde157688a94daf (patch) | |
| tree | d3c6471da30a8d6c20d10858e78907edd9c886e8 /core/image.cpp | |
| parent | 1b3a10891ebdc6e76a81c8915ba08065311e17d3 (diff) | |
| download | godot-af4a97bef9bfb06e2737ad709dde157688a94daf.tar.gz godot-af4a97bef9bfb06e2737ad709dde157688a94daf.tar.zst godot-af4a97bef9bfb06e2737ad709dde157688a94daf.zip | |
Diffstat (limited to 'core/image.cpp')
| -rw-r--r-- | core/image.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/core/image.cpp b/core/image.cpp index d9ba6c159..ae9fb0adc 100644 --- a/core/image.cpp +++ b/core/image.cpp @@ -1998,6 +1998,26 @@ void Image::set_compress_bc_func(void (*p_compress_func)(Image *)) { +void Image::normalmap_to_xy() { + + convert(Image::FORMAT_RGBA); + + { + int len = data.size()/4; + DVector<uint8_t>::Write wp = data.write(); + unsigned char *data_ptr=wp.ptr(); + + for(int i=0;i<len;i++) { + + data_ptr[(i<<2)+3]=data_ptr[(i<<2)+0]; //x to w + data_ptr[(i<<2)+0]=data_ptr[(i<<2)+1]; //y to xz + data_ptr[(i<<2)+2]=data_ptr[(i<<2)+1]; + } + } + + convert(Image::FORMAT_GRAYSCALE_ALPHA); +} + void Image::srgb_to_linear() { if (data.size()==0) |
