summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/bgfx/tools/makedisttex.cpp
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/bgfx/tools/makedisttex.cpp')
-rw-r--r--3rdparty/bgfx/tools/makedisttex.cpp195
1 files changed, 0 insertions, 195 deletions
diff --git a/3rdparty/bgfx/tools/makedisttex.cpp b/3rdparty/bgfx/tools/makedisttex.cpp
deleted file mode 100644
index 6bc99b5289d..00000000000
--- a/3rdparty/bgfx/tools/makedisttex.cpp
+++ /dev/null
@@ -1,195 +0,0 @@
-/*
- * Copyright 2011-2016 Branimir Karadzic. All rights reserved.
- * License: https://github.com/bkaradzic/bgfx#license-bsd-2-clause
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdint.h>
-#include <string.h>
-
-#include <edtaa3/edtaa3func.h>
-
-#define STB_IMAGE_IMPLEMENTATION
-#include <stb/stb_image.c>
-
-#define BX_NAMESPACE 1
-#include <bx/bx.h>
-#include <bx/commandline.h>
-#include <bx/uint32_t.h>
-
-long int fsize(FILE* _file)
-{
- long int pos = ftell(_file);
- fseek(_file, 0L, SEEK_END);
- long int size = ftell(_file);
- fseek(_file, pos, SEEK_SET);
- return size;
-}
-
-void edtaa3(double* _img, uint16_t _width, uint16_t _height, double* _out)
-{
- uint32_t size = _width*_height;
-
- short* xdist = (short*)malloc(size*sizeof(short) );
- short* ydist = (short*)malloc(size*sizeof(short) );
- double* gx = (double*)malloc(size*sizeof(double) );
- double* gy = (double*)malloc(size*sizeof(double) );
-
- computegradient(_img, _width, _height, gx, gy);
- edtaa3(_img, gx, gy, _width, _height, xdist, ydist, _out);
-
- for (uint32_t ii = 0; ii < size; ++ii)
- {
- if (_out[ii] < 0.0)
- {
- _out[ii] = 0.0;
- }
- }
-
- free(xdist);
- free(ydist);
- free(gx);
- free(gy);
-}
-
-void saveTga(const char* _filePath, uint32_t _width, uint32_t _height, uint32_t _pitch, bool _grayscale, const void* _data)
-{
- FILE* file = fopen(_filePath, "wb");
- if ( NULL != file )
- {
- uint8_t type = _grayscale ? 3 : 2;
- uint8_t bpp = _grayscale ? 8 : 32;
- uint8_t xorig = 0;
- uint8_t yorig = 0;
-
- putc(0, file);
- putc(0, file);
- putc(type, file);
- putc(0, file);
- putc(0, file);
- putc(0, file);
- putc(0, file);
- putc(0, file);
- putc(0, file);
- putc(xorig, file);
- putc(0, file);
- putc(yorig, file);
- putc(_width&0xff, file);
- putc( (_width>>8)&0xff, file);
- putc(_height&0xff, file);
- putc( (_height>>8)&0xff, file);
- putc(bpp, file);
- putc(32, file);
-
- uint32_t width = _width * bpp / 8;
- uint8_t* data = (uint8_t*)_data;
- for (uint32_t yy = 0; yy < _height; ++yy)
- {
- fwrite(data, width, 1, file);
- data += _pitch;
- }
-
- fclose(file);
- }
-}
-
-inline double min(double _a, double _b)
-{
- return _a > _b ? _b : _a;
-}
-
-inline double max(double _a, double _b)
-{
- return _a > _b ? _a : _b;
-}
-
-inline double clamp(double _val, double _min, double _max)
-{
- return max(min(_val, _max), _min);
-}
-
-inline double saturate(double _val)
-{
- return clamp(_val, 0.0, 1.0);
-}
-
-int main(int _argc, const char* _argv[])
-{
- bx::CommandLine cmdLine(_argc, _argv);
-
- const char* inFilePath = cmdLine.findOption('i');
- if (NULL == inFilePath)
- {
- fprintf(stderr, "Input file name must be specified.\n");
- return EXIT_FAILURE;
- }
-
- const char* outFilePath = cmdLine.findOption('o');
- if (NULL == outFilePath)
- {
- fprintf(stderr, "Output file name must be specified.\n");
- return EXIT_FAILURE;
- }
-
- double edge = 16.0;
- const char* edgeOpt = cmdLine.findOption('e');
- if (NULL != edgeOpt)
- {
- edge = atof(edgeOpt);
- }
-
- int width;
- int height;
- int comp;
-
- stbi_uc* img = stbi_load(inFilePath, &width, &height, &comp, 1);
-
- if (NULL == img)
- {
- fprintf(stderr, "Failed to load %s.\n", inFilePath);
- return EXIT_FAILURE;
- }
-
- uint32_t size = width*height;
-
- double* imgIn = (double*)malloc(size*sizeof(double) );
- double* outside = (double*)malloc(size*sizeof(double) );
- double* inside = (double*)malloc(size*sizeof(double) );
-
- for (uint32_t ii = 0; ii < size; ++ii)
- {
- imgIn[ii] = double(img[ii])/255.0;
- }
-
- edtaa3(imgIn, width, height, outside);
-
- for (uint32_t ii = 0; ii < size; ++ii)
- {
- imgIn[ii] = 1.0 - imgIn[ii];
- }
-
- edtaa3(imgIn, width, height, inside);
-
- free(imgIn);
-
- uint8_t* grayscale = (uint8_t*)malloc(size);
-
- double edgeOffset = edge*0.5;
- double invEdge = 1.0/edge;
-
- for (uint32_t ii = 0; ii < size; ++ii)
- {
- double dist = saturate( ( (outside[ii] - inside[ii])+edgeOffset) * invEdge);
- grayscale[ii] = 255-uint8_t(dist * 255.0);
- }
-
- free(inside);
- free(outside);
-
- saveTga(outFilePath, width, height, width, true, grayscale);
-
- free(grayscale);
-
- return EXIT_SUCCESS;
-}