Merge pull request #15 from cjcliffe/multiple_demodulators

Multiple demodulators and related interactivity
This commit is contained in:
Charles J. Cliffe 2014-12-11 21:59:23 -05:00
commit 943341ebc7
47 changed files with 10679 additions and 421 deletions

View File

@ -2,15 +2,15 @@ cmake_minimum_required (VERSION 2.8)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/")
macro(configure_files srcDir destDir)
message(STATUS "Configuring directory ${destDir}")
macro(configure_files srcDir destDir globStr)
message(STATUS "Copying ${srcDir}/${globStr} to directory ${destDir}")
make_directory(${destDir})
file(GLOB templateFiles RELATIVE ${srcDir} ${srcDir}/*)
file(GLOB templateFiles RELATIVE ${srcDir} ${srcDir}/${globStr})
foreach(templateFile ${templateFiles})
set(srcTemplatePath ${srcDir}/${templateFile})
message(STATUS "Configuring file ${templateFile}")
if(NOT IS_DIRECTORY ${srcTemplatePath})
# message(STATUS "Configuring file ${templateFile}")
configure_file(
${srcTemplatePath}
${destDir}/${templateFile}
@ -27,8 +27,8 @@ macro(configure_files_recurse srcDir destDir)
file(GLOB_RECURSE templateFiles RELATIVE ${srcDir} ${srcDir}/*)
foreach(templateFile ${templateFiles})
set(srcTemplatePath ${srcDir}/${templateFile})
message(STATUS "Configuring file ${templateFile}")
if(NOT IS_DIRECTORY ${srcTemplatePath})
# message(STATUS "Configuring file ${templateFile}")
configure_file(
${srcTemplatePath}
${destDir}/${templateFile}
@ -57,7 +57,7 @@ include(${wxWidgets_USE_FILE})
# include_directories ( ${PROJECT_SOURCE_DIR}/../CubicVR-2/build/include )
# link_directories ( ${PROJECT_SOURCE_DIR}/../CubicVR-2/build/lib ${OPENGL_INCLUDE_DIR})
IF (DEFINED WIN32)
IF (WIN32)
set(wxWidgets_USE_STATIC ON)
include_directories ( ${PROJECT_SOURCE_DIR}/external/fftw-3.3.4-dll64 ${PROJECT_SOURCE_DIR}/external/rtl-sdr-release )
link_directories ( ${PROJECT_SOURCE_DIR}/external/fftw-3.3.4-dll64 ${PROJECT_SOURCE_DIR}/external/rtl-sdr-release/x64 )
@ -69,15 +69,23 @@ IF (DEFINED WIN32)
ADD_DEFINITIONS(
# To use wasapi
-D__WINDOWS_WASAPI__
# To use directsound
#-D__WINDOWS_DS__
)
# To use wasapi
SET(OTHER_LIBRARIES -luuid -lksuser )
# To use DirectSound (which uses WASAPI anyways?)
# SET(OTHER_LIBRARIES -ldsound)
ENDIF (DEFINED WIN32)
# Copy DLL files to build dir
configure_files(${PROJECT_SOURCE_DIR}/external/liquid-dsp-lib/64 ${CMAKE_BINARY_DIR} "*.dll")
configure_files(${PROJECT_SOURCE_DIR}/external/rtl-sdr-release/x64 ${CMAKE_BINARY_DIR} "*.dll")
configure_files(${PROJECT_SOURCE_DIR}/external/fftw-3.3.4-dll64 ${CMAKE_BINARY_DIR} "*.dll")
ENDIF (WIN32)
IF (UNIX)
set(RTLSDR_INCLUDE "/opt/local/include" CACHE FILEPATH "RTL-SDR Include Path")
@ -124,6 +132,7 @@ SET (cubicsdr_sources
src/util/Gradient.cpp
src/util/Timer.cpp
src/util/MouseTracker.cpp
src/util/GLFont.cpp
src/visual/PrimaryGLContext.cpp
src/visual/ScopeCanvas.cpp
src/visual/ScopeContext.cpp
@ -132,6 +141,7 @@ SET (cubicsdr_sources
src/visual/WaterfallCanvas.cpp
src/visual/WaterfallContext.cpp
external/rtaudio/RtAudio.cpp
external/lodepng/lodepng.cpp
)
SET (cubicsdr_headers
@ -143,11 +153,13 @@ SET (cubicsdr_headers
src/demod/DemodulatorThread.h
src/demod/DemodulatorWorkerThread.h
src/demod/DemodulatorMgr.h
src/demod/DemodDefs.h
src/audio/AudioThread.h
src/util/Gradient.h
src/util/Timer.h
src/util/ThreadQueue.h
src/util/MouseTracker.h
src/util/GLFont.h
src/visual/PrimaryGLContext.h
src/visual/ScopeCanvas.h
src/visual/ScopeContext.h
@ -156,25 +168,30 @@ SET (cubicsdr_headers
src/visual/WaterfallCanvas.h
src/visual/WaterfallContext.h
external/rtaudio/RtAudio.h
external/lodepng/lodepng.h
)
include_directories ( ${PROJECT_SOURCE_DIR}/src/sdr
${PROJECT_SOURCE_DIR}/src/demod
${PROJECT_SOURCE_DIR}/src/audio
${PROJECT_SOURCE_DIR}/src/util
${PROJECT_SOURCE_DIR}/src/visual
${PROJECT_SOURCE_DIR}/src
${PROJECT_SOURCE_DIR}/external/rtaudio )
include_directories (
${PROJECT_SOURCE_DIR}/src/sdr
${PROJECT_SOURCE_DIR}/src/demod
${PROJECT_SOURCE_DIR}/src/audio
${PROJECT_SOURCE_DIR}/src/util
${PROJECT_SOURCE_DIR}/src/visual
${PROJECT_SOURCE_DIR}/src
${PROJECT_SOURCE_DIR}/external/rtaudio
${PROJECT_SOURCE_DIR}/external/lodepng
)
ADD_DEFINITIONS(
-std=c++0x # or -std=c++11
-pthread
)
#configure_files(${PROJECT_SOURCE_DIR}/shaders ${PROJECT_BINARY_DIR}/shaders COPYONLY)
#configure_files(${PROJECT_SOURCE_DIR}/png ${PROJECT_BINARY_DIR}/png COPYONLY)
configure_files(${PROJECT_SOURCE_DIR}/font ${CMAKE_BINARY_DIR} "*.fnt")
configure_files(${PROJECT_SOURCE_DIR}/font ${CMAKE_BINARY_DIR} "*.png")
add_executable(CubicSDR ${cubicsdr_sources} ${cubicsdr_headers})
target_link_libraries(CubicSDR rtlsdr liquid ${FFTW_LIB} ${wxWidgets_LIBRARIES} ${OPENGL_LIBRARIES} ${OTHER_LIBRARIES})
# cubicvr2 glfw ${GLFW_LIBRARIES}

View File

@ -9,6 +9,8 @@ Utilizes:
- RtAudio (http://www.music.mcgill.ca/~gary/rtaudio/ http://github.com/thestk/rtaudio/)
- OpenGL (https://www.opengl.org/)
- wxWidgets (https://www.wxwidgets.org/)
- BMFont (http://www.angelcode.com/ http://www.angelcode.com/products/bmfont/)
- Bitstream Vera font (http://en.wikipedia.org/wiki/Bitstream_Vera)
- CMake (http://www.cmake.org/)

6141
external/lodepng/lodepng.cpp vendored Normal file

File diff suppressed because it is too large Load Diff

1708
external/lodepng/lodepng.h vendored Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,56 @@
# AngelCode Bitmap Font Generator configuration file
fileVersion=1
# font settings
fontName=Bitstream Vera Sans Mono
fontFile=
charSet=0
fontSize=12
aa=1
scaleH=100
useSmoothing=0
isBold=0
isItalic=0
useUnicode=1
disableBoxChars=1
outputInvalidCharGlyph=0
dontIncludeKerningPairs=0
useHinting=1
renderFromOutline=0
useClearType=0
# character alignment
paddingDown=0
paddingUp=0
paddingRight=0
paddingLeft=0
spacingHoriz=1
spacingVert=1
useFixedHeight=1
forceZero=0
# output file
outWidth=128
outHeight=128
outBitDepth=32
fontDescFormat=0
fourChnlPacked=0
textureFormat=png
textureCompression=0
alphaChnl=1
redChnl=0
greenChnl=0
blueChnl=0
invA=0
invR=0
invG=0
invB=0
# outline
outlineThickness=0
# selected chars
chars=32-126,160-191,215-216,223,247-248,710-711,730,732-733,937,960,8211-8212,8216-8218,8220-8222,8226
chars=8230,8249-8250,8706,8710,8719,8721-8722,8725,8729-8730,8734,8747,8776,8800,8804-8805,9674
# imported icon images

170
font/vera_sans_mono12.fnt Normal file
View File

@ -0,0 +1,170 @@
info face="Bitstream Vera Sans Mono" size=12 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=0 aa=1 padding=0,0,0,0 spacing=1,1 outline=0
common lineHeight=12 base=10 scaleW=128 scaleH=128 pages=1 packed=0 alphaChnl=1 redChnl=0 greenChnl=0 blueChnl=0
page id=0 file="vera_sans_mono12_0.png"
chars count=166
char id=32 x=40 y=78 width=3 height=12 xoffset=-1 yoffset=0 xadvance=6 page=0 chnl=15
char id=33 x=126 y=65 width=1 height=12 xoffset=3 yoffset=0 xadvance=6 page=0 chnl=15
char id=34 x=118 y=65 width=3 height=12 xoffset=2 yoffset=0 xadvance=6 page=0 chnl=15
char id=35 x=21 y=0 width=6 height=12 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15
char id=36 x=12 y=13 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=37 x=35 y=0 width=6 height=12 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15
char id=38 x=18 y=13 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=39 x=126 y=13 width=1 height=12 xoffset=3 yoffset=0 xadvance=6 page=0 chnl=15
char id=40 x=125 y=0 width=2 height=12 xoffset=2 yoffset=0 xadvance=6 page=0 chnl=15
char id=41 x=64 y=78 width=2 height=12 xoffset=2 yoffset=0 xadvance=6 page=0 chnl=15
char id=42 x=42 y=13 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=43 x=48 y=13 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=44 x=126 y=26 width=1 height=12 xoffset=2 yoffset=0 xadvance=6 page=0 chnl=15
char id=45 x=12 y=78 width=3 height=12 xoffset=2 yoffset=0 xadvance=6 page=0 chnl=15
char id=46 x=96 y=78 width=1 height=12 xoffset=2 yoffset=0 xadvance=6 page=0 chnl=15
char id=47 x=66 y=13 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=48 x=72 y=13 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=49 x=78 y=13 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=50 x=84 y=13 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=51 x=90 y=13 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=52 x=119 y=0 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=53 x=102 y=13 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=54 x=108 y=13 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=55 x=114 y=13 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=56 x=120 y=13 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=57 x=0 y=26 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=58 x=104 y=78 width=1 height=12 xoffset=2 yoffset=0 xadvance=6 page=0 chnl=15
char id=59 x=126 y=52 width=1 height=12 xoffset=2 yoffset=0 xadvance=6 page=0 chnl=15
char id=60 x=6 y=26 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=61 x=12 y=26 width=5 height=12 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15
char id=62 x=18 y=26 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=63 x=44 y=65 width=4 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=64 x=24 y=26 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=65 x=30 y=26 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=66 x=36 y=26 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=67 x=42 y=26 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=68 x=48 y=26 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=69 x=54 y=26 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=70 x=60 y=26 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=71 x=66 y=26 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=72 x=96 y=13 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=73 x=72 y=26 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=74 x=54 y=65 width=4 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=75 x=78 y=26 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=76 x=84 y=26 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=77 x=90 y=26 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=78 x=96 y=26 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=79 x=102 y=26 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=80 x=108 y=26 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=81 x=114 y=26 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=82 x=70 y=0 width=6 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=83 x=120 y=26 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=84 x=0 y=39 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=85 x=6 y=39 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=86 x=12 y=39 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=87 x=42 y=0 width=6 height=12 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15
char id=88 x=18 y=39 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=89 x=24 y=39 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=90 x=30 y=39 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=91 x=85 y=78 width=2 height=12 xoffset=2 yoffset=0 xadvance=6 page=0 chnl=15
char id=92 x=36 y=39 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=93 x=82 y=78 width=2 height=12 xoffset=2 yoffset=0 xadvance=6 page=0 chnl=15
char id=94 x=42 y=39 width=5 height=12 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15
char id=95 x=48 y=39 width=5 height=12 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15
char id=96 x=76 y=78 width=2 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=97 x=54 y=39 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=98 x=60 y=39 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=99 x=109 y=65 width=4 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=100 x=66 y=39 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=101 x=72 y=39 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=102 x=74 y=65 width=4 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=103 x=78 y=39 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=104 x=84 y=39 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=105 x=90 y=39 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=106 x=0 y=78 width=3 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=107 x=96 y=39 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=108 x=102 y=39 width=5 height=12 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15
char id=109 x=108 y=39 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=110 x=114 y=39 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=111 x=120 y=39 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=112 x=0 y=52 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=113 x=6 y=52 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=114 x=94 y=65 width=4 height=12 xoffset=2 yoffset=0 xadvance=6 page=0 chnl=15
char id=115 x=12 y=52 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=116 x=79 y=65 width=4 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=117 x=18 y=52 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=118 x=24 y=52 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=119 x=30 y=52 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=120 x=36 y=52 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=121 x=42 y=52 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=122 x=48 y=52 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=123 x=49 y=65 width=4 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=124 x=100 y=78 width=1 height=12 xoffset=3 yoffset=0 xadvance=6 page=0 chnl=15
char id=125 x=64 y=65 width=4 height=12 xoffset=2 yoffset=0 xadvance=6 page=0 chnl=15
char id=126 x=54 y=52 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=160 x=20 y=78 width=3 height=12 xoffset=-1 yoffset=0 xadvance=6 page=0 chnl=15
char id=161 x=90 y=78 width=1 height=12 xoffset=3 yoffset=0 xadvance=6 page=0 chnl=15
char id=162 x=39 y=65 width=4 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=163 x=60 y=52 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=164 x=66 y=52 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=165 x=72 y=52 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=166 x=102 y=78 width=1 height=12 xoffset=3 yoffset=0 xadvance=6 page=0 chnl=15
char id=167 x=29 y=65 width=4 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=168 x=56 y=78 width=3 height=12 xoffset=2 yoffset=0 xadvance=6 page=0 chnl=15
char id=169 x=49 y=0 width=6 height=12 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15
char id=170 x=89 y=65 width=4 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=171 x=84 y=65 width=4 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=172 x=78 y=52 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=173 x=122 y=65 width=3 height=12 xoffset=2 yoffset=0 xadvance=6 page=0 chnl=15
char id=174 x=63 y=0 width=6 height=12 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15
char id=175 x=4 y=78 width=3 height=12 xoffset=2 yoffset=0 xadvance=6 page=0 chnl=15
char id=176 x=8 y=78 width=3 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=177 x=84 y=52 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=178 x=114 y=65 width=3 height=12 xoffset=2 yoffset=0 xadvance=6 page=0 chnl=15
char id=179 x=16 y=78 width=3 height=12 xoffset=2 yoffset=0 xadvance=6 page=0 chnl=15
char id=180 x=67 y=78 width=2 height=12 xoffset=2 yoffset=0 xadvance=6 page=0 chnl=15
char id=181 x=7 y=0 width=6 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=182 x=90 y=52 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=183 x=88 y=78 width=1 height=12 xoffset=2 yoffset=0 xadvance=6 page=0 chnl=15
char id=184 x=79 y=78 width=2 height=12 xoffset=2 yoffset=0 xadvance=6 page=0 chnl=15
char id=185 x=36 y=78 width=3 height=12 xoffset=2 yoffset=0 xadvance=6 page=0 chnl=15
char id=186 x=99 y=65 width=4 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=187 x=104 y=65 width=4 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=188 x=28 y=0 width=6 height=12 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15
char id=189 x=56 y=0 width=6 height=12 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15
char id=190 x=14 y=0 width=6 height=12 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15
char id=191 x=34 y=65 width=4 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=215 x=96 y=52 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=216 x=105 y=0 width=6 height=12 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15
char id=223 x=102 y=52 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=247 x=108 y=52 width=5 height=12 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15
char id=248 x=114 y=52 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=710 x=24 y=78 width=3 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=711 x=28 y=78 width=3 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=730 x=32 y=78 width=3 height=12 xoffset=2 yoffset=0 xadvance=6 page=0 chnl=15
char id=732 x=69 y=65 width=4 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=733 x=59 y=65 width=4 height=12 xoffset=2 yoffset=0 xadvance=6 page=0 chnl=15
char id=937 x=120 y=52 width=5 height=12 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15
char id=960 x=112 y=0 width=6 height=12 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15
char id=8211 x=91 y=0 width=6 height=12 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15
char id=8212 x=0 y=0 width=6 height=12 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15
char id=8216 x=126 y=39 width=1 height=12 xoffset=2 yoffset=0 xadvance=6 page=0 chnl=15
char id=8217 x=94 y=78 width=1 height=12 xoffset=3 yoffset=0 xadvance=6 page=0 chnl=15
char id=8218 x=98 y=78 width=1 height=12 xoffset=2 yoffset=0 xadvance=6 page=0 chnl=15
char id=8220 x=44 y=78 width=3 height=12 xoffset=2 yoffset=0 xadvance=6 page=0 chnl=15
char id=8221 x=60 y=78 width=3 height=12 xoffset=2 yoffset=0 xadvance=6 page=0 chnl=15
char id=8222 x=48 y=78 width=3 height=12 xoffset=2 yoffset=0 xadvance=6 page=0 chnl=15
char id=8226 x=52 y=78 width=3 height=12 xoffset=2 yoffset=0 xadvance=6 page=0 chnl=15
char id=8230 x=6 y=65 width=5 height=12 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15
char id=8249 x=70 y=78 width=2 height=12 xoffset=2 yoffset=0 xadvance=6 page=0 chnl=15
char id=8250 x=73 y=78 width=2 height=12 xoffset=2 yoffset=0 xadvance=6 page=0 chnl=15
char id=8706 x=24 y=65 width=4 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=8710 x=84 y=0 width=6 height=12 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15
char id=8719 x=12 y=65 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=8721 x=18 y=65 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=8722 x=0 y=13 width=5 height=12 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15
char id=8725 x=6 y=13 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=8729 x=92 y=78 width=1 height=12 xoffset=2 yoffset=0 xadvance=6 page=0 chnl=15
char id=8730 x=77 y=0 width=6 height=12 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15
char id=8734 x=98 y=0 width=6 height=12 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15
char id=8747 x=24 y=13 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=8776 x=30 y=13 width=5 height=12 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15
char id=8800 x=36 y=13 width=5 height=12 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15
char id=8804 x=54 y=13 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=8805 x=60 y=13 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
char id=9674 x=0 y=65 width=5 height=12 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15

BIN
font/vera_sans_mono12_0.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@ -0,0 +1,56 @@
# AngelCode Bitmap Font Generator configuration file
fileVersion=1
# font settings
fontName=Bitstream Vera Sans Mono
fontFile=
charSet=0
fontSize=16
aa=1
scaleH=100
useSmoothing=1
isBold=0
isItalic=0
useUnicode=1
disableBoxChars=1
outputInvalidCharGlyph=0
dontIncludeKerningPairs=0
useHinting=1
renderFromOutline=0
useClearType=0
# character alignment
paddingDown=0
paddingUp=0
paddingRight=0
paddingLeft=0
spacingHoriz=1
spacingVert=1
useFixedHeight=1
forceZero=0
# output file
outWidth=256
outHeight=128
outBitDepth=32
fontDescFormat=0
fourChnlPacked=0
textureFormat=png
textureCompression=0
alphaChnl=1
redChnl=0
greenChnl=0
blueChnl=0
invA=0
invR=0
invG=0
invB=0
# outline
outlineThickness=0
# selected chars
chars=32-126,160-191,215-216,223,247-248,710-711,730,732-733,937,960,8211-8212,8216-8218,8220-8222,8226
chars=8230,8249-8250,8706,8710,8719,8721-8722,8725,8729-8730,8734,8747,8776,8800,8804-8805,9674
# imported icon images

170
font/vera_sans_mono16.fnt Normal file
View File

@ -0,0 +1,170 @@
info face="Bitstream Vera Sans Mono" size=16 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1 outline=0
common lineHeight=16 base=13 scaleW=256 scaleH=128 pages=1 packed=0 alphaChnl=1 redChnl=0 greenChnl=0 blueChnl=0
page id=0 file="vera_sans_mono16_0.png"
chars count=166
char id=32 x=19 y=68 width=3 height=16 xoffset=-1 yoffset=0 xadvance=8 page=0 chnl=15
char id=33 x=109 y=68 width=1 height=16 xoffset=4 yoffset=0 xadvance=8 page=0 chnl=15
char id=34 x=63 y=68 width=3 height=16 xoffset=3 yoffset=0 xadvance=8 page=0 chnl=15
char id=35 x=49 y=0 width=8 height=16 xoffset=0 yoffset=0 xadvance=8 page=0 chnl=15
char id=36 x=199 y=0 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=37 x=67 y=0 width=8 height=16 xoffset=0 yoffset=0 xadvance=8 page=0 chnl=15
char id=38 x=207 y=0 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=39 x=254 y=51 width=1 height=16 xoffset=4 yoffset=0 xadvance=8 page=0 chnl=15
char id=40 x=51 y=68 width=3 height=16 xoffset=3 yoffset=0 xadvance=8 page=0 chnl=15
char id=41 x=43 y=68 width=3 height=16 xoffset=2 yoffset=0 xadvance=8 page=0 chnl=15
char id=42 x=239 y=0 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=43 x=247 y=0 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=44 x=39 y=68 width=3 height=16 xoffset=2 yoffset=0 xadvance=8 page=0 chnl=15
char id=45 x=224 y=51 width=4 height=16 xoffset=2 yoffset=0 xadvance=8 page=0 chnl=15
char id=46 x=91 y=68 width=2 height=16 xoffset=3 yoffset=0 xadvance=8 page=0 chnl=15
char id=47 x=208 y=34 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=48 x=32 y=17 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=49 x=250 y=34 width=5 height=16 xoffset=2 yoffset=0 xadvance=8 page=0 chnl=15
char id=50 x=48 y=17 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=51 x=56 y=17 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=52 x=175 y=0 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=53 x=72 y=17 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=54 x=80 y=17 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=55 x=88 y=17 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=56 x=96 y=17 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=57 x=104 y=17 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=58 x=94 y=68 width=2 height=16 xoffset=3 yoffset=0 xadvance=8 page=0 chnl=15
char id=59 x=23 y=68 width=3 height=16 xoffset=2 yoffset=0 xadvance=8 page=0 chnl=15
char id=60 x=128 y=17 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=61 x=136 y=17 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=62 x=144 y=17 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=63 x=160 y=51 width=5 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=64 x=160 y=17 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=65 x=168 y=17 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=66 x=176 y=17 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=67 x=184 y=17 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=68 x=192 y=17 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=69 x=200 y=17 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=70 x=208 y=17 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=71 x=216 y=17 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=72 x=64 y=17 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=73 x=166 y=51 width=5 height=16 xoffset=2 yoffset=0 xadvance=8 page=0 chnl=15
char id=74 x=7 y=51 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=75 x=248 y=17 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=76 x=0 y=34 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=77 x=8 y=34 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=78 x=16 y=34 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=79 x=24 y=34 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=80 x=32 y=34 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=81 x=40 y=34 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=82 x=157 y=0 width=8 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=83 x=48 y=34 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=84 x=56 y=34 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=85 x=64 y=34 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=86 x=72 y=34 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=87 x=0 y=0 width=10 height=16 xoffset=-1 yoffset=0 xadvance=8 page=0 chnl=15
char id=88 x=80 y=34 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=89 x=88 y=34 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=90 x=96 y=34 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=91 x=15 y=68 width=3 height=16 xoffset=3 yoffset=0 xadvance=8 page=0 chnl=15
char id=92 x=21 y=51 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=93 x=87 y=68 width=3 height=16 xoffset=2 yoffset=0 xadvance=8 page=0 chnl=15
char id=94 x=128 y=34 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=95 x=136 y=34 width=7 height=16 xoffset=0 yoffset=0 xadvance=8 page=0 chnl=15
char id=96 x=83 y=68 width=3 height=16 xoffset=2 yoffset=0 xadvance=8 page=0 chnl=15
char id=97 x=222 y=34 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=98 x=63 y=51 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=99 x=159 y=34 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=100 x=173 y=34 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=101 x=229 y=34 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=102 x=243 y=34 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=103 x=14 y=51 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=104 x=49 y=51 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=105 x=183 y=0 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=106 x=0 y=68 width=4 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=107 x=126 y=51 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=108 x=191 y=0 width=7 height=16 xoffset=0 yoffset=0 xadvance=8 page=0 chnl=15
char id=109 x=215 y=0 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=110 x=98 y=51 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=111 x=112 y=51 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=112 x=91 y=51 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=113 x=70 y=51 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=114 x=154 y=51 width=5 height=16 xoffset=2 yoffset=0 xadvance=8 page=0 chnl=15
char id=115 x=152 y=34 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=116 x=187 y=34 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=117 x=0 y=51 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=118 x=35 y=51 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=119 x=112 y=0 width=8 height=16 xoffset=0 yoffset=0 xadvance=8 page=0 chnl=15
char id=120 x=84 y=51 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=121 x=105 y=51 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=122 x=133 y=51 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=123 x=184 y=51 width=5 height=16 xoffset=2 yoffset=0 xadvance=8 page=0 chnl=15
char id=124 x=103 y=68 width=1 height=16 xoffset=4 yoffset=0 xadvance=8 page=0 chnl=15
char id=125 x=208 y=51 width=5 height=16 xoffset=2 yoffset=0 xadvance=8 page=0 chnl=15
char id=126 x=231 y=0 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=160 x=79 y=68 width=3 height=16 xoffset=-1 yoffset=0 xadvance=8 page=0 chnl=15
char id=161 x=107 y=68 width=1 height=16 xoffset=4 yoffset=0 xadvance=8 page=0 chnl=15
char id=162 x=236 y=34 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=163 x=0 y=17 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=164 x=8 y=17 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=165 x=16 y=17 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=166 x=105 y=68 width=1 height=16 xoffset=4 yoffset=0 xadvance=8 page=0 chnl=15
char id=167 x=56 y=51 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=168 x=67 y=68 width=3 height=16 xoffset=3 yoffset=0 xadvance=8 page=0 chnl=15
char id=169 x=103 y=0 width=8 height=16 xoffset=0 yoffset=0 xadvance=8 page=0 chnl=15
char id=170 x=196 y=51 width=5 height=16 xoffset=2 yoffset=0 xadvance=8 page=0 chnl=15
char id=171 x=77 y=51 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=172 x=24 y=17 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=173 x=229 y=51 width=4 height=16 xoffset=2 yoffset=0 xadvance=8 page=0 chnl=15
char id=174 x=85 y=0 width=8 height=16 xoffset=0 yoffset=0 xadvance=8 page=0 chnl=15
char id=175 x=234 y=51 width=4 height=16 xoffset=2 yoffset=0 xadvance=8 page=0 chnl=15
char id=176 x=239 y=51 width=4 height=16 xoffset=2 yoffset=0 xadvance=8 page=0 chnl=15
char id=177 x=40 y=17 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=178 x=249 y=51 width=4 height=16 xoffset=2 yoffset=0 xadvance=8 page=0 chnl=15
char id=179 x=244 y=51 width=4 height=16 xoffset=2 yoffset=0 xadvance=8 page=0 chnl=15
char id=180 x=47 y=68 width=3 height=16 xoffset=3 yoffset=0 xadvance=8 page=0 chnl=15
char id=181 x=112 y=17 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=182 x=120 y=17 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=183 x=100 y=68 width=2 height=16 xoffset=3 yoffset=0 xadvance=8 page=0 chnl=15
char id=184 x=75 y=68 width=3 height=16 xoffset=3 yoffset=0 xadvance=8 page=0 chnl=15
char id=185 x=71 y=68 width=3 height=16 xoffset=3 yoffset=0 xadvance=8 page=0 chnl=15
char id=186 x=190 y=51 width=5 height=16 xoffset=2 yoffset=0 xadvance=8 page=0 chnl=15
char id=187 x=119 y=51 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=188 x=130 y=0 width=8 height=16 xoffset=0 yoffset=0 xadvance=8 page=0 chnl=15
char id=189 x=152 y=17 width=7 height=16 xoffset=0 yoffset=0 xadvance=8 page=0 chnl=15
char id=190 x=121 y=0 width=8 height=16 xoffset=0 yoffset=0 xadvance=8 page=0 chnl=15
char id=191 x=202 y=51 width=5 height=16 xoffset=2 yoffset=0 xadvance=8 page=0 chnl=15
char id=215 x=194 y=34 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=216 x=11 y=0 width=9 height=16 xoffset=0 yoffset=0 xadvance=8 page=0 chnl=15
char id=223 x=28 y=51 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=247 x=94 y=0 width=8 height=16 xoffset=0 yoffset=0 xadvance=8 page=0 chnl=15
char id=248 x=76 y=0 width=8 height=16 xoffset=0 yoffset=0 xadvance=8 page=0 chnl=15
char id=710 x=5 y=68 width=4 height=16 xoffset=2 yoffset=0 xadvance=8 page=0 chnl=15
char id=711 x=10 y=68 width=4 height=16 xoffset=2 yoffset=0 xadvance=8 page=0 chnl=15
char id=730 x=214 y=51 width=4 height=16 xoffset=2 yoffset=0 xadvance=8 page=0 chnl=15
char id=732 x=178 y=51 width=5 height=16 xoffset=2 yoffset=0 xadvance=8 page=0 chnl=15
char id=733 x=172 y=51 width=5 height=16 xoffset=2 yoffset=0 xadvance=8 page=0 chnl=15
char id=937 x=224 y=17 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=960 x=58 y=0 width=8 height=16 xoffset=0 yoffset=0 xadvance=8 page=0 chnl=15
char id=8211 x=40 y=0 width=8 height=16 xoffset=0 yoffset=0 xadvance=8 page=0 chnl=15
char id=8212 x=31 y=0 width=8 height=16 xoffset=0 yoffset=0 xadvance=8 page=0 chnl=15
char id=8216 x=27 y=68 width=3 height=16 xoffset=3 yoffset=0 xadvance=8 page=0 chnl=15
char id=8217 x=31 y=68 width=3 height=16 xoffset=3 yoffset=0 xadvance=8 page=0 chnl=15
char id=8218 x=35 y=68 width=3 height=16 xoffset=2 yoffset=0 xadvance=8 page=0 chnl=15
char id=8220 x=201 y=34 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=8221 x=42 y=51 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=8222 x=180 y=34 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=8226 x=219 y=51 width=4 height=16 xoffset=2 yoffset=0 xadvance=8 page=0 chnl=15
char id=8230 x=166 y=0 width=8 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=8249 x=55 y=68 width=3 height=16 xoffset=2 yoffset=0 xadvance=8 page=0 chnl=15
char id=8250 x=59 y=68 width=3 height=16 xoffset=3 yoffset=0 xadvance=8 page=0 chnl=15
char id=8706 x=166 y=34 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=8710 x=21 y=0 width=9 height=16 xoffset=0 yoffset=0 xadvance=8 page=0 chnl=15
char id=8719 x=140 y=51 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=8721 x=147 y=51 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=8722 x=232 y=17 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=8725 x=215 y=34 width=6 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=8729 x=97 y=68 width=2 height=16 xoffset=3 yoffset=0 xadvance=8 page=0 chnl=15
char id=8730 x=148 y=0 width=8 height=16 xoffset=0 yoffset=0 xadvance=8 page=0 chnl=15
char id=8734 x=139 y=0 width=8 height=16 xoffset=0 yoffset=0 xadvance=8 page=0 chnl=15
char id=8747 x=240 y=17 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=8776 x=104 y=34 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=8800 x=112 y=34 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=8804 x=120 y=34 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=8805 x=144 y=34 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
char id=9674 x=223 y=0 width=7 height=16 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15

BIN
font/vera_sans_mono16_0.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

View File

@ -0,0 +1,56 @@
# AngelCode Bitmap Font Generator configuration file
fileVersion=1
# font settings
fontName=Bitstream Vera Sans Mono
fontFile=
charSet=0
fontSize=18
aa=1
scaleH=100
useSmoothing=1
isBold=0
isItalic=0
useUnicode=1
disableBoxChars=1
outputInvalidCharGlyph=0
dontIncludeKerningPairs=0
useHinting=1
renderFromOutline=0
useClearType=1
# character alignment
paddingDown=0
paddingUp=0
paddingRight=0
paddingLeft=0
spacingHoriz=1
spacingVert=1
useFixedHeight=1
forceZero=0
# output file
outWidth=256
outHeight=128
outBitDepth=32
fontDescFormat=0
fourChnlPacked=0
textureFormat=png
textureCompression=0
alphaChnl=1
redChnl=0
greenChnl=0
blueChnl=0
invA=0
invR=0
invG=0
invB=0
# outline
outlineThickness=0
# selected chars
chars=32-126,160-191,215-216,223,247-248,710-711,730,732-733,937,960,8211-8212,8216-8218,8220-8222,8226
chars=8230,8249-8250,8706,8710,8719,8721-8722,8725,8729-8730,8734,8747,8776,8800,8804-8805,9674
# imported icon images

170
font/vera_sans_mono18.fnt Normal file
View File

@ -0,0 +1,170 @@
info face="Bitstream Vera Sans Mono" size=18 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1 outline=0
common lineHeight=18 base=14 scaleW=256 scaleH=128 pages=1 packed=0 alphaChnl=1 redChnl=0 greenChnl=0 blueChnl=0
page id=0 file="vera_sans_mono18_0.png"
chars count=166
char id=32 x=154 y=95 width=3 height=18 xoffset=-1 yoffset=0 xadvance=9 page=0 chnl=15
char id=33 x=142 y=95 width=3 height=18 xoffset=3 yoffset=0 xadvance=9 page=0 chnl=15
char id=34 x=250 y=19 width=5 height=18 xoffset=2 yoffset=0 xadvance=9 page=0 chnl=15
char id=35 x=12 y=0 width=11 height=18 xoffset=-1 yoffset=0 xadvance=9 page=0 chnl=15
char id=36 x=159 y=57 width=8 height=18 xoffset=1 yoffset=0 xadvance=9 page=0 chnl=15
char id=37 x=36 y=0 width=11 height=18 xoffset=-1 yoffset=0 xadvance=9 page=0 chnl=15
char id=38 x=130 y=0 width=10 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=39 x=126 y=95 width=3 height=18 xoffset=3 yoffset=0 xadvance=9 page=0 chnl=15
char id=40 x=0 y=95 width=5 height=18 xoffset=2 yoffset=0 xadvance=9 page=0 chnl=15
char id=41 x=6 y=95 width=5 height=18 xoffset=2 yoffset=0 xadvance=9 page=0 chnl=15
char id=42 x=195 y=57 width=8 height=18 xoffset=1 yoffset=0 xadvance=9 page=0 chnl=15
char id=43 x=40 y=19 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=44 x=251 y=76 width=4 height=18 xoffset=2 yoffset=0 xadvance=9 page=0 chnl=15
char id=45 x=18 y=95 width=5 height=18 xoffset=2 yoffset=0 xadvance=9 page=0 chnl=15
char id=46 x=150 y=95 width=3 height=18 xoffset=3 yoffset=0 xadvance=9 page=0 chnl=15
char id=47 x=231 y=57 width=8 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=48 x=90 y=19 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=49 x=240 y=57 width=8 height=18 xoffset=1 yoffset=0 xadvance=9 page=0 chnl=15
char id=50 x=110 y=19 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=51 x=120 y=19 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=52 x=207 y=0 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=53 x=140 y=19 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=54 x=150 y=19 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=55 x=160 y=19 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=56 x=170 y=19 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=57 x=180 y=19 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=58 x=130 y=95 width=3 height=18 xoffset=3 yoffset=0 xadvance=9 page=0 chnl=15
char id=59 x=121 y=95 width=4 height=18 xoffset=2 yoffset=0 xadvance=9 page=0 chnl=15
char id=60 x=210 y=19 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=61 x=220 y=19 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=62 x=230 y=19 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=63 x=181 y=76 width=7 height=18 xoffset=1 yoffset=0 xadvance=9 page=0 chnl=15
char id=64 x=196 y=0 width=10 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=65 x=108 y=0 width=10 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=66 x=0 y=38 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=67 x=10 y=38 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=68 x=20 y=38 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=69 x=30 y=38 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=70 x=27 y=76 width=8 height=18 xoffset=1 yoffset=0 xadvance=9 page=0 chnl=15
char id=71 x=50 y=38 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=72 x=130 y=19 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=73 x=189 y=76 width=7 height=18 xoffset=1 yoffset=0 xadvance=9 page=0 chnl=15
char id=74 x=247 y=0 width=8 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=75 x=90 y=38 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=76 x=63 y=76 width=8 height=18 xoffset=1 yoffset=0 xadvance=9 page=0 chnl=15
char id=77 x=110 y=38 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=78 x=120 y=38 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=79 x=130 y=38 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=80 x=140 y=38 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=81 x=150 y=38 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=82 x=141 y=0 width=10 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=83 x=160 y=38 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=84 x=170 y=38 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=85 x=180 y=38 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=86 x=163 y=0 width=10 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=87 x=72 y=0 width=11 height=18 xoffset=-1 yoffset=0 xadvance=9 page=0 chnl=15
char id=88 x=174 y=0 width=10 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=89 x=190 y=38 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=90 x=200 y=38 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=91 x=106 y=95 width=4 height=18 xoffset=3 yoffset=0 xadvance=9 page=0 chnl=15
char id=92 x=81 y=76 width=8 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=93 x=116 y=95 width=4 height=18 xoffset=2 yoffset=0 xadvance=9 page=0 chnl=15
char id=94 x=240 y=38 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=95 x=0 y=57 width=9 height=18 xoffset=-1 yoffset=0 xadvance=9 page=0 chnl=15
char id=96 x=90 y=95 width=5 height=18 xoffset=1 yoffset=0 xadvance=9 page=0 chnl=15
char id=97 x=20 y=57 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=98 x=30 y=57 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=99 x=108 y=76 width=8 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=100 x=50 y=57 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=101 x=60 y=57 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=102 x=90 y=76 width=8 height=18 xoffset=1 yoffset=0 xadvance=9 page=0 chnl=15
char id=103 x=70 y=57 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=104 x=177 y=57 width=8 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=105 x=186 y=57 width=8 height=18 xoffset=1 yoffset=0 xadvance=9 page=0 chnl=15
char id=106 x=244 y=76 width=6 height=18 xoffset=1 yoffset=0 xadvance=9 page=0 chnl=15
char id=107 x=9 y=76 width=8 height=18 xoffset=1 yoffset=0 xadvance=9 page=0 chnl=15
char id=108 x=72 y=76 width=8 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=109 x=185 y=0 width=10 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=110 x=222 y=57 width=8 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=111 x=80 y=57 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=112 x=90 y=57 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=113 x=100 y=57 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=114 x=117 y=76 width=7 height=18 xoffset=2 yoffset=0 xadvance=9 page=0 chnl=15
char id=115 x=168 y=57 width=8 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=116 x=45 y=76 width=8 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=117 x=36 y=76 width=8 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=118 x=120 y=57 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=119 x=24 y=0 width=11 height=18 xoffset=-1 yoffset=0 xadvance=9 page=0 chnl=15
char id=120 x=119 y=0 width=10 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=121 x=130 y=57 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=122 x=150 y=57 width=8 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=123 x=197 y=76 width=7 height=18 xoffset=1 yoffset=0 xadvance=9 page=0 chnl=15
char id=124 x=134 y=95 width=3 height=18 xoffset=3 yoffset=0 xadvance=9 page=0 chnl=15
char id=125 x=221 y=76 width=7 height=18 xoffset=1 yoffset=0 xadvance=9 page=0 chnl=15
char id=126 x=140 y=57 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=160 x=158 y=95 width=3 height=18 xoffset=-1 yoffset=0 xadvance=9 page=0 chnl=15
char id=161 x=166 y=95 width=3 height=18 xoffset=3 yoffset=0 xadvance=9 page=0 chnl=15
char id=162 x=18 y=76 width=8 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=163 x=217 y=0 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=164 x=0 y=76 width=8 height=18 xoffset=1 yoffset=0 xadvance=9 page=0 chnl=15
char id=165 x=227 y=0 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=166 x=162 y=95 width=3 height=18 xoffset=3 yoffset=0 xadvance=9 page=0 chnl=15
char id=167 x=149 y=76 width=7 height=18 xoffset=1 yoffset=0 xadvance=9 page=0 chnl=15
char id=168 x=24 y=95 width=5 height=18 xoffset=2 yoffset=0 xadvance=9 page=0 chnl=15
char id=169 x=96 y=0 width=11 height=18 xoffset=-1 yoffset=0 xadvance=9 page=0 chnl=15
char id=170 x=157 y=76 width=7 height=18 xoffset=1 yoffset=0 xadvance=9 page=0 chnl=15
char id=171 x=54 y=76 width=8 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=172 x=237 y=0 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=173 x=48 y=95 width=5 height=18 xoffset=2 yoffset=0 xadvance=9 page=0 chnl=15
char id=174 x=84 y=0 width=11 height=18 xoffset=-1 yoffset=0 xadvance=9 page=0 chnl=15
char id=175 x=66 y=95 width=5 height=18 xoffset=2 yoffset=0 xadvance=9 page=0 chnl=15
char id=176 x=173 y=76 width=7 height=18 xoffset=1 yoffset=0 xadvance=9 page=0 chnl=15
char id=177 x=0 y=19 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=178 x=78 y=95 width=5 height=18 xoffset=2 yoffset=0 xadvance=9 page=0 chnl=15
char id=179 x=60 y=95 width=5 height=18 xoffset=2 yoffset=0 xadvance=9 page=0 chnl=15
char id=180 x=54 y=95 width=5 height=18 xoffset=3 yoffset=0 xadvance=9 page=0 chnl=15
char id=181 x=10 y=19 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=182 x=20 y=19 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=183 x=138 y=95 width=3 height=18 xoffset=3 yoffset=0 xadvance=9 page=0 chnl=15
char id=184 x=42 y=95 width=5 height=18 xoffset=2 yoffset=0 xadvance=9 page=0 chnl=15
char id=185 x=237 y=76 width=6 height=18 xoffset=2 yoffset=0 xadvance=9 page=0 chnl=15
char id=186 x=213 y=76 width=7 height=18 xoffset=1 yoffset=0 xadvance=9 page=0 chnl=15
char id=187 x=204 y=57 width=8 height=18 xoffset=1 yoffset=0 xadvance=9 page=0 chnl=15
char id=188 x=30 y=19 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=189 x=50 y=19 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=190 x=60 y=19 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=191 x=205 y=76 width=7 height=18 xoffset=1 yoffset=0 xadvance=9 page=0 chnl=15
char id=215 x=213 y=57 width=8 height=18 xoffset=1 yoffset=0 xadvance=9 page=0 chnl=15
char id=216 x=152 y=0 width=10 height=18 xoffset=-1 yoffset=0 xadvance=9 page=0 chnl=15
char id=223 x=70 y=19 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=247 x=80 y=19 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=248 x=100 y=19 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=710 x=36 y=95 width=5 height=18 xoffset=2 yoffset=0 xadvance=9 page=0 chnl=15
char id=711 x=72 y=95 width=5 height=18 xoffset=2 yoffset=0 xadvance=9 page=0 chnl=15
char id=730 x=30 y=95 width=5 height=18 xoffset=2 yoffset=0 xadvance=9 page=0 chnl=15
char id=732 x=165 y=76 width=7 height=18 xoffset=1 yoffset=0 xadvance=9 page=0 chnl=15
char id=733 x=249 y=57 width=6 height=18 xoffset=2 yoffset=0 xadvance=9 page=0 chnl=15
char id=937 x=190 y=19 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=960 x=200 y=19 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=8211 x=60 y=0 width=11 height=18 xoffset=-1 yoffset=0 xadvance=9 page=0 chnl=15
char id=8212 x=48 y=0 width=11 height=18 xoffset=-1 yoffset=0 xadvance=9 page=0 chnl=15
char id=8216 x=96 y=95 width=4 height=18 xoffset=3 yoffset=0 xadvance=9 page=0 chnl=15
char id=8217 x=101 y=95 width=4 height=18 xoffset=3 yoffset=0 xadvance=9 page=0 chnl=15
char id=8218 x=111 y=95 width=4 height=18 xoffset=2 yoffset=0 xadvance=9 page=0 chnl=15
char id=8220 x=125 y=76 width=7 height=18 xoffset=1 yoffset=0 xadvance=9 page=0 chnl=15
char id=8221 x=229 y=76 width=7 height=18 xoffset=1 yoffset=0 xadvance=9 page=0 chnl=15
char id=8222 x=133 y=76 width=7 height=18 xoffset=1 yoffset=0 xadvance=9 page=0 chnl=15
char id=8226 x=84 y=95 width=5 height=18 xoffset=2 yoffset=0 xadvance=9 page=0 chnl=15
char id=8230 x=240 y=19 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=8249 x=250 y=38 width=5 height=18 xoffset=2 yoffset=0 xadvance=9 page=0 chnl=15
char id=8250 x=12 y=95 width=5 height=18 xoffset=2 yoffset=0 xadvance=9 page=0 chnl=15
char id=8706 x=141 y=76 width=7 height=18 xoffset=1 yoffset=0 xadvance=9 page=0 chnl=15
char id=8710 x=0 y=0 width=11 height=18 xoffset=-1 yoffset=0 xadvance=9 page=0 chnl=15
char id=8719 x=40 y=38 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=8721 x=60 y=38 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=8722 x=70 y=38 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=8725 x=99 y=76 width=8 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=8729 x=146 y=95 width=3 height=18 xoffset=3 yoffset=0 xadvance=9 page=0 chnl=15
char id=8730 x=80 y=38 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=8734 x=100 y=38 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=8747 x=210 y=38 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=8776 x=220 y=38 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=8800 x=230 y=38 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=8804 x=10 y=57 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=8805 x=40 y=57 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
char id=9674 x=110 y=57 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15

BIN
font/vera_sans_mono18_0.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

View File

@ -0,0 +1,56 @@
# AngelCode Bitmap Font Generator configuration file
fileVersion=1
# font settings
fontName=Bitstream Vera Sans Mono
fontFile=
charSet=0
fontSize=24
aa=1
scaleH=100
useSmoothing=1
isBold=0
isItalic=0
useUnicode=1
disableBoxChars=1
outputInvalidCharGlyph=0
dontIncludeKerningPairs=0
useHinting=1
renderFromOutline=0
useClearType=1
# character alignment
paddingDown=0
paddingUp=0
paddingRight=0
paddingLeft=0
spacingHoriz=1
spacingVert=1
useFixedHeight=1
forceZero=0
# output file
outWidth=256
outHeight=256
outBitDepth=32
fontDescFormat=0
fourChnlPacked=0
textureFormat=png
textureCompression=0
alphaChnl=1
redChnl=0
greenChnl=0
blueChnl=0
invA=0
invR=0
invG=0
invB=0
# outline
outlineThickness=0
# selected chars
chars=32-126,160-191,215-216,223,247-248,710-711,730,732-733,937,960,8211-8212,8216-8218,8220-8222,8226
chars=8230,8249-8250,8706,8710,8719,8721-8722,8725,8729-8730,8734,8747,8776,8800,8804-8805,9674
# imported icon images

170
font/vera_sans_mono24.fnt Normal file
View File

@ -0,0 +1,170 @@
info face="Bitstream Vera Sans Mono" size=24 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1 outline=0
common lineHeight=24 base=19 scaleW=256 scaleH=256 pages=1 packed=0 alphaChnl=1 redChnl=0 greenChnl=0 blueChnl=0
page id=0 file="vera_sans_mono24_0.png"
chars count=166
char id=32 x=252 y=25 width=3 height=24 xoffset=-1 yoffset=0 xadvance=13 page=0 chnl=15
char id=33 x=252 y=100 width=3 height=24 xoffset=5 yoffset=0 xadvance=13 page=0 chnl=15
char id=34 x=146 y=150 width=7 height=24 xoffset=3 yoffset=0 xadvance=13 page=0 chnl=15
char id=35 x=45 y=0 width=14 height=24 xoffset=-1 yoffset=0 xadvance=13 page=0 chnl=15
char id=36 x=0 y=125 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
char id=37 x=163 y=0 width=13 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
char id=38 x=177 y=0 width=13 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
char id=39 x=252 y=150 width=3 height=24 xoffset=5 yoffset=0 xadvance=13 page=0 chnl=15
char id=40 x=238 y=150 width=6 height=24 xoffset=4 yoffset=0 xadvance=13 page=0 chnl=15
char id=41 x=245 y=150 width=6 height=24 xoffset=3 yoffset=0 xadvance=13 page=0 chnl=15
char id=42 x=24 y=125 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
char id=43 x=219 y=0 width=13 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
char id=44 x=39 y=175 width=5 height=24 xoffset=4 yoffset=0 xadvance=13 page=0 chnl=15
char id=45 x=194 y=150 width=7 height=24 xoffset=3 yoffset=0 xadvance=13 page=0 chnl=15
char id=46 x=251 y=125 width=4 height=24 xoffset=4 yoffset=0 xadvance=13 page=0 chnl=15
char id=47 x=36 y=125 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
char id=48 x=60 y=125 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
char id=49 x=218 y=125 width=10 height=24 xoffset=2 yoffset=0 xadvance=13 page=0 chnl=15
char id=50 x=72 y=125 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
char id=51 x=84 y=125 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
char id=52 x=69 y=50 width=12 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
char id=53 x=96 y=125 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
char id=54 x=130 y=75 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
char id=55 x=142 y=75 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
char id=56 x=154 y=75 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
char id=57 x=166 y=75 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
char id=58 x=45 y=175 width=4 height=24 xoffset=4 yoffset=0 xadvance=13 page=0 chnl=15
char id=59 x=21 y=175 width=5 height=24 xoffset=4 yoffset=0 xadvance=13 page=0 chnl=15
char id=60 x=168 y=25 width=13 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
char id=61 x=182 y=25 width=13 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
char id=62 x=196 y=25 width=13 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
char id=63 x=141 y=125 width=10 height=24 xoffset=2 yoffset=0 xadvance=13 page=0 chnl=15
char id=64 x=126 y=25 width=13 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
char id=65 x=224 y=25 width=13 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
char id=66 x=91 y=75 width=12 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
char id=67 x=199 y=50 width=12 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
char id=68 x=225 y=50 width=12 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
char id=69 x=13 y=75 width=12 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
char id=70 x=0 y=150 width=10 height=24 xoffset=2 yoffset=0 xadvance=13 page=0 chnl=15
char id=71 x=39 y=75 width=12 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
char id=72 x=82 y=50 width=12 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
char id=73 x=163 y=125 width=10 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
char id=74 x=178 y=75 width=11 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
char id=75 x=238 y=25 width=13 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
char id=76 x=190 y=75 width=11 height=24 xoffset=2 yoffset=0 xadvance=13 page=0 chnl=15
char id=77 x=134 y=50 width=12 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
char id=78 x=147 y=50 width=12 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
char id=79 x=117 y=75 width=12 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
char id=80 x=173 y=50 width=12 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
char id=81 x=186 y=50 width=12 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
char id=82 x=0 y=50 width=13 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
char id=83 x=212 y=50 width=12 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
char id=84 x=14 y=50 width=13 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
char id=85 x=238 y=50 width=12 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
char id=86 x=0 y=75 width=12 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
char id=87 x=75 y=0 width=14 height=24 xoffset=-1 yoffset=0 xadvance=13 page=0 chnl=15
char id=88 x=42 y=50 width=13 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
char id=89 x=149 y=0 width=13 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
char id=90 x=56 y=50 width=12 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
char id=91 x=210 y=150 width=6 height=24 xoffset=4 yoffset=0 xadvance=13 page=0 chnl=15
char id=92 x=202 y=75 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
char id=93 x=14 y=175 width=6 height=24 xoffset=3 yoffset=0 xadvance=13 page=0 chnl=15
char id=94 x=56 y=25 width=13 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
char id=95 x=95 y=50 width=12 height=24 xoffset=-1 yoffset=0 xadvance=13 page=0 chnl=15
char id=96 x=217 y=150 width=6 height=24 xoffset=2 yoffset=0 xadvance=13 page=0 chnl=15
char id=97 x=214 y=75 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
char id=98 x=226 y=75 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
char id=99 x=22 y=150 width=10 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
char id=100 x=238 y=75 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
char id=101 x=0 y=100 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
char id=102 x=12 y=100 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
char id=103 x=24 y=100 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
char id=104 x=240 y=125 width=10 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
char id=105 x=36 y=100 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
char id=106 x=93 y=150 width=8 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
char id=107 x=48 y=100 width=11 height=24 xoffset=2 yoffset=0 xadvance=13 page=0 chnl=15
char id=108 x=60 y=100 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
char id=109 x=78 y=75 width=12 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
char id=110 x=229 y=125 width=10 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
char id=111 x=72 y=100 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
char id=112 x=84 y=100 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
char id=113 x=96 y=100 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
char id=114 x=11 y=150 width=10 height=24 xoffset=3 yoffset=0 xadvance=13 page=0 chnl=15
char id=115 x=152 y=125 width=10 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
char id=116 x=120 y=100 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
char id=117 x=185 y=125 width=10 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
char id=118 x=108 y=50 width=12 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
char id=119 x=120 y=0 width=14 height=24 xoffset=-1 yoffset=0 xadvance=13 page=0 chnl=15
char id=120 x=104 y=75 width=12 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
char id=121 x=52 y=75 width=12 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
char id=122 x=130 y=125 width=10 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
char id=123 x=207 y=125 width=10 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
char id=124 x=63 y=175 width=3 height=24 xoffset=5 yoffset=0 xadvance=13 page=0 chnl=15
char id=125 x=108 y=125 width=10 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
char id=126 x=140 y=25 width=13 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
char id=160 x=55 y=175 width=3 height=24 xoffset=-1 yoffset=0 xadvance=13 page=0 chnl=15
char id=161 x=59 y=175 width=3 height=24 xoffset=5 yoffset=0 xadvance=13 page=0 chnl=15
char id=162 x=132 y=100 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
char id=163 x=144 y=100 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
char id=164 x=156 y=100 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
char id=165 x=98 y=25 width=13 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
char id=166 x=67 y=175 width=3 height=24 xoffset=5 yoffset=0 xadvance=13 page=0 chnl=15
char id=167 x=174 y=125 width=10 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
char id=168 x=178 y=150 width=7 height=24 xoffset=3 yoffset=0 xadvance=13 page=0 chnl=15
char id=169 x=60 y=0 width=14 height=24 xoffset=-1 yoffset=0 xadvance=13 page=0 chnl=15
char id=170 x=43 y=150 width=9 height=24 xoffset=2 yoffset=0 xadvance=13 page=0 chnl=15
char id=171 x=168 y=100 width=11 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
char id=172 x=28 y=25 width=13 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
char id=173 x=138 y=150 width=7 height=24 xoffset=3 yoffset=0 xadvance=13 page=0 chnl=15
char id=174 x=90 y=0 width=14 height=24 xoffset=-1 yoffset=0 xadvance=13 page=0 chnl=15
char id=175 x=111 y=150 width=8 height=24 xoffset=2 yoffset=0 xadvance=13 page=0 chnl=15
char id=176 x=247 y=0 width=8 height=24 xoffset=2 yoffset=0 xadvance=13 page=0 chnl=15
char id=177 x=210 y=25 width=13 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
char id=178 x=154 y=150 width=7 height=24 xoffset=3 yoffset=0 xadvance=13 page=0 chnl=15
char id=179 x=162 y=150 width=7 height=24 xoffset=3 yoffset=0 xadvance=13 page=0 chnl=15
char id=180 x=224 y=150 width=6 height=24 xoffset=4 yoffset=0 xadvance=13 page=0 chnl=15
char id=181 x=180 y=100 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
char id=182 x=26 y=75 width=12 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
char id=183 x=50 y=175 width=4 height=24 xoffset=4 yoffset=0 xadvance=13 page=0 chnl=15
char id=184 x=231 y=150 width=6 height=24 xoffset=3 yoffset=0 xadvance=13 page=0 chnl=15
char id=185 x=186 y=150 width=7 height=24 xoffset=3 yoffset=0 xadvance=13 page=0 chnl=15
char id=186 x=63 y=150 width=9 height=24 xoffset=2 yoffset=0 xadvance=13 page=0 chnl=15
char id=187 x=192 y=100 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
char id=188 x=65 y=75 width=12 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
char id=189 x=160 y=50 width=12 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
char id=190 x=121 y=50 width=12 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
char id=191 x=196 y=125 width=10 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
char id=215 x=204 y=100 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
char id=216 x=30 y=0 width=14 height=24 xoffset=-1 yoffset=0 xadvance=13 page=0 chnl=15
char id=223 x=216 y=100 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
char id=247 x=14 y=25 width=13 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
char id=248 x=0 y=25 width=13 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
char id=710 x=129 y=150 width=8 height=24 xoffset=2 yoffset=0 xadvance=13 page=0 chnl=15
char id=711 x=102 y=150 width=8 height=24 xoffset=2 yoffset=0 xadvance=13 page=0 chnl=15
char id=730 x=202 y=150 width=7 height=24 xoffset=3 yoffset=0 xadvance=13 page=0 chnl=15
char id=732 x=83 y=150 width=9 height=24 xoffset=2 yoffset=0 xadvance=13 page=0 chnl=15
char id=733 x=120 y=150 width=8 height=24 xoffset=3 yoffset=0 xadvance=13 page=0 chnl=15
char id=937 x=233 y=0 width=13 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
char id=960 x=191 y=0 width=13 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
char id=8211 x=0 y=0 width=14 height=24 xoffset=-1 yoffset=0 xadvance=13 page=0 chnl=15
char id=8212 x=105 y=0 width=14 height=24 xoffset=-1 yoffset=0 xadvance=13 page=0 chnl=15
char id=8216 x=250 y=75 width=5 height=24 xoffset=4 yoffset=0 xadvance=13 page=0 chnl=15
char id=8217 x=33 y=175 width=5 height=24 xoffset=4 yoffset=0 xadvance=13 page=0 chnl=15
char id=8218 x=27 y=175 width=5 height=24 xoffset=4 yoffset=0 xadvance=13 page=0 chnl=15
char id=8220 x=33 y=150 width=9 height=24 xoffset=2 yoffset=0 xadvance=13 page=0 chnl=15
char id=8221 x=73 y=150 width=9 height=24 xoffset=2 yoffset=0 xadvance=13 page=0 chnl=15
char id=8222 x=53 y=150 width=9 height=24 xoffset=2 yoffset=0 xadvance=13 page=0 chnl=15
char id=8226 x=170 y=150 width=7 height=24 xoffset=3 yoffset=0 xadvance=13 page=0 chnl=15
char id=8230 x=135 y=0 width=13 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
char id=8249 x=0 y=175 width=6 height=24 xoffset=3 yoffset=0 xadvance=13 page=0 chnl=15
char id=8250 x=7 y=175 width=6 height=24 xoffset=4 yoffset=0 xadvance=13 page=0 chnl=15
char id=8706 x=119 y=125 width=10 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
char id=8710 x=15 y=0 width=14 height=24 xoffset=-1 yoffset=0 xadvance=13 page=0 chnl=15
char id=8719 x=228 y=100 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
char id=8721 x=240 y=100 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
char id=8722 x=205 y=0 width=13 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
char id=8725 x=12 y=125 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
char id=8729 x=251 y=50 width=4 height=24 xoffset=4 yoffset=0 xadvance=13 page=0 chnl=15
char id=8730 x=42 y=25 width=13 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
char id=8734 x=70 y=25 width=13 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
char id=8747 x=48 y=125 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
char id=8776 x=84 y=25 width=13 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
char id=8800 x=112 y=25 width=13 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
char id=8804 x=154 y=25 width=13 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
char id=8805 x=28 y=50 width=13 height=24 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
char id=9674 x=108 y=100 width=11 height=24 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15

BIN
font/vera_sans_mono24_0.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View File

@ -0,0 +1,56 @@
# AngelCode Bitmap Font Generator configuration file
fileVersion=1
# font settings
fontName=Bitstream Vera Sans Mono
fontFile=
charSet=0
fontSize=32
aa=1
scaleH=100
useSmoothing=1
isBold=0
isItalic=0
useUnicode=1
disableBoxChars=1
outputInvalidCharGlyph=0
dontIncludeKerningPairs=0
useHinting=1
renderFromOutline=0
useClearType=0
# character alignment
paddingDown=0
paddingUp=0
paddingRight=0
paddingLeft=0
spacingHoriz=1
spacingVert=1
useFixedHeight=1
forceZero=0
# output file
outWidth=512
outHeight=256
outBitDepth=32
fontDescFormat=0
fourChnlPacked=0
textureFormat=png
textureCompression=0
alphaChnl=1
redChnl=0
greenChnl=0
blueChnl=0
invA=0
invR=0
invG=0
invB=0
# outline
outlineThickness=0
# selected chars
chars=32-126,160-191,215-216,223,247-248,710-711,730,732-733,937,960,8211-8212,8216-8218,8220-8222,8226
chars=8230,8249-8250,8706,8710,8719,8721-8722,8725,8729-8730,8734,8747,8776,8800,8804-8805,9674
# imported icon images

170
font/vera_sans_mono32.fnt Normal file
View File

@ -0,0 +1,170 @@
info face="Bitstream Vera Sans Mono" size=32 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1 outline=0
common lineHeight=32 base=26 scaleW=512 scaleH=256 pages=1 packed=0 alphaChnl=1 redChnl=0 greenChnl=0 blueChnl=0
page id=0 file="vera_sans_mono32_0.png"
chars count=166
char id=32 x=24 y=132 width=3 height=32 xoffset=-1 yoffset=0 xadvance=17 page=0 chnl=15
char id=33 x=28 y=132 width=3 height=32 xoffset=7 yoffset=0 xadvance=17 page=0 chnl=15
char id=34 x=449 y=99 width=7 height=32 xoffset=5 yoffset=0 xadvance=17 page=0 chnl=15
char id=35 x=0 y=0 width=17 height=32 xoffset=0 yoffset=0 xadvance=17 page=0 chnl=15
char id=36 x=392 y=66 width=13 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
char id=37 x=36 y=0 width=17 height=32 xoffset=0 yoffset=0 xadvance=17 page=0 chnl=15
char id=38 x=233 y=0 width=16 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
char id=39 x=52 y=132 width=2 height=32 xoffset=7 yoffset=0 xadvance=17 page=0 chnl=15
char id=40 x=471 y=99 width=6 height=32 xoffset=6 yoffset=0 xadvance=17 page=0 chnl=15
char id=41 x=499 y=99 width=6 height=32 xoffset=5 yoffset=0 xadvance=17 page=0 chnl=15
char id=42 x=104 y=99 width=12 height=32 xoffset=3 yoffset=0 xadvance=17 page=0 chnl=15
char id=43 x=32 y=33 width=14 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
char id=44 x=506 y=99 width=4 height=32 xoffset=6 yoffset=0 xadvance=17 page=0 chnl=15
char id=45 x=441 y=99 width=7 height=32 xoffset=5 yoffset=0 xadvance=17 page=0 chnl=15
char id=46 x=36 y=132 width=3 height=32 xoffset=7 yoffset=0 xadvance=17 page=0 chnl=15
char id=47 x=62 y=33 width=14 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
char id=48 x=406 y=66 width=13 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
char id=49 x=78 y=99 width=12 height=32 xoffset=3 yoffset=0 xadvance=17 page=0 chnl=15
char id=50 x=122 y=33 width=14 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
char id=51 x=420 y=66 width=13 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
char id=52 x=377 y=33 width=14 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
char id=53 x=434 y=66 width=13 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
char id=54 x=467 y=33 width=13 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
char id=55 x=481 y=33 width=13 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
char id=56 x=495 y=33 width=13 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
char id=57 x=0 y=66 width=13 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
char id=58 x=40 y=132 width=3 height=32 xoffset=7 yoffset=0 xadvance=17 page=0 chnl=15
char id=59 x=15 y=132 width=4 height=32 xoffset=6 yoffset=0 xadvance=17 page=0 chnl=15
char id=60 x=332 y=33 width=14 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
char id=61 x=362 y=33 width=14 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
char id=62 x=107 y=33 width=14 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
char id=63 x=190 y=99 width=11 height=32 xoffset=4 yoffset=0 xadvance=17 page=0 chnl=15
char id=64 x=267 y=0 width=16 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
char id=65 x=284 y=0 width=16 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
char id=66 x=14 y=66 width=13 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
char id=67 x=28 y=66 width=13 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
char id=68 x=42 y=66 width=13 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
char id=69 x=39 y=99 width=12 height=32 xoffset=3 yoffset=0 xadvance=17 page=0 chnl=15
char id=70 x=65 y=99 width=12 height=32 xoffset=3 yoffset=0 xadvance=17 page=0 chnl=15
char id=71 x=137 y=33 width=14 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
char id=72 x=266 y=66 width=13 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
char id=73 x=202 y=99 width=11 height=32 xoffset=3 yoffset=0 xadvance=17 page=0 chnl=15
char id=74 x=448 y=66 width=12 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
char id=75 x=479 y=0 width=15 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
char id=76 x=56 y=66 width=13 height=32 xoffset=3 yoffset=0 xadvance=17 page=0 chnl=15
char id=77 x=227 y=33 width=14 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
char id=78 x=70 y=66 width=13 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
char id=79 x=257 y=33 width=14 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
char id=80 x=84 y=66 width=13 height=32 xoffset=3 yoffset=0 xadvance=17 page=0 chnl=15
char id=81 x=287 y=33 width=14 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
char id=82 x=495 y=0 width=15 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
char id=83 x=98 y=66 width=13 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
char id=84 x=0 y=33 width=15 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
char id=85 x=112 y=66 width=13 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
char id=86 x=16 y=33 width=15 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
char id=87 x=198 y=0 width=17 height=32 xoffset=0 yoffset=0 xadvance=17 page=0 chnl=15
char id=88 x=318 y=0 width=16 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
char id=89 x=18 y=0 width=17 height=32 xoffset=0 yoffset=0 xadvance=17 page=0 chnl=15
char id=90 x=77 y=33 width=14 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
char id=91 x=457 y=99 width=6 height=32 xoffset=6 yoffset=0 xadvance=17 page=0 chnl=15
char id=92 x=197 y=33 width=14 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
char id=93 x=492 y=99 width=6 height=32 xoffset=5 yoffset=0 xadvance=17 page=0 chnl=15
char id=94 x=367 y=0 width=15 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
char id=95 x=302 y=33 width=14 height=32 xoffset=0 yoffset=0 xadvance=17 page=0 chnl=15
char id=96 x=417 y=99 width=7 height=32 xoffset=4 yoffset=0 xadvance=17 page=0 chnl=15
char id=97 x=126 y=66 width=13 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
char id=98 x=140 y=66 width=13 height=32 xoffset=3 yoffset=0 xadvance=17 page=0 chnl=15
char id=99 x=0 y=99 width=12 height=32 xoffset=3 yoffset=0 xadvance=17 page=0 chnl=15
char id=100 x=154 y=66 width=13 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
char id=101 x=242 y=33 width=14 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
char id=102 x=487 y=66 width=12 height=32 xoffset=3 yoffset=0 xadvance=17 page=0 chnl=15
char id=103 x=168 y=66 width=13 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
char id=104 x=91 y=99 width=12 height=32 xoffset=3 yoffset=0 xadvance=17 page=0 chnl=15
char id=105 x=182 y=66 width=13 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
char id=106 x=313 y=99 width=9 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
char id=107 x=196 y=66 width=13 height=32 xoffset=3 yoffset=0 xadvance=17 page=0 chnl=15
char id=108 x=210 y=66 width=13 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
char id=109 x=431 y=0 width=15 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
char id=110 x=52 y=99 width=12 height=32 xoffset=3 yoffset=0 xadvance=17 page=0 chnl=15
char id=111 x=224 y=66 width=13 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
char id=112 x=238 y=66 width=13 height=32 xoffset=3 yoffset=0 xadvance=17 page=0 chnl=15
char id=113 x=252 y=66 width=13 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
char id=114 x=214 y=99 width=11 height=32 xoffset=5 yoffset=0 xadvance=17 page=0 chnl=15
char id=115 x=178 y=99 width=11 height=32 xoffset=3 yoffset=0 xadvance=17 page=0 chnl=15
char id=116 x=280 y=66 width=13 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
char id=117 x=474 y=66 width=12 height=32 xoffset=3 yoffset=0 xadvance=17 page=0 chnl=15
char id=118 x=317 y=33 width=14 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
char id=119 x=180 y=0 width=17 height=32 xoffset=0 yoffset=0 xadvance=17 page=0 chnl=15
char id=120 x=447 y=0 width=15 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
char id=121 x=347 y=33 width=14 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
char id=122 x=154 y=99 width=11 height=32 xoffset=3 yoffset=0 xadvance=17 page=0 chnl=15
char id=123 x=142 y=99 width=11 height=32 xoffset=3 yoffset=0 xadvance=17 page=0 chnl=15
char id=124 x=55 y=132 width=2 height=32 xoffset=7 yoffset=0 xadvance=17 page=0 chnl=15
char id=125 x=226 y=99 width=11 height=32 xoffset=3 yoffset=0 xadvance=17 page=0 chnl=15
char id=126 x=272 y=33 width=14 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
char id=160 x=44 y=132 width=3 height=32 xoffset=-1 yoffset=0 xadvance=17 page=0 chnl=15
char id=161 x=20 y=132 width=3 height=32 xoffset=7 yoffset=0 xadvance=17 page=0 chnl=15
char id=162 x=461 y=66 width=12 height=32 xoffset=3 yoffset=0 xadvance=17 page=0 chnl=15
char id=163 x=294 y=66 width=13 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
char id=164 x=500 y=66 width=11 height=32 xoffset=3 yoffset=0 xadvance=17 page=0 chnl=15
char id=165 x=162 y=0 width=17 height=32 xoffset=0 yoffset=0 xadvance=17 page=0 chnl=15
char id=166 x=509 y=33 width=2 height=32 xoffset=7 yoffset=0 xadvance=17 page=0 chnl=15
char id=167 x=130 y=99 width=11 height=32 xoffset=3 yoffset=0 xadvance=17 page=0 chnl=15
char id=168 x=293 y=99 width=9 height=32 xoffset=4 yoffset=0 xadvance=17 page=0 chnl=15
char id=169 x=126 y=0 width=17 height=32 xoffset=0 yoffset=0 xadvance=17 page=0 chnl=15
char id=170 x=260 y=99 width=10 height=32 xoffset=3 yoffset=0 xadvance=17 page=0 chnl=15
char id=171 x=13 y=99 width=12 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
char id=172 x=212 y=33 width=14 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
char id=173 x=425 y=99 width=7 height=32 xoffset=5 yoffset=0 xadvance=17 page=0 chnl=15
char id=174 x=108 y=0 width=17 height=32 xoffset=0 yoffset=0 xadvance=17 page=0 chnl=15
char id=175 x=408 y=99 width=8 height=32 xoffset=4 yoffset=0 xadvance=17 page=0 chnl=15
char id=176 x=343 y=99 width=9 height=32 xoffset=4 yoffset=0 xadvance=17 page=0 chnl=15
char id=177 x=182 y=33 width=14 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
char id=178 x=390 y=99 width=8 height=32 xoffset=4 yoffset=0 xadvance=17 page=0 chnl=15
char id=179 x=372 y=99 width=8 height=32 xoffset=4 yoffset=0 xadvance=17 page=0 chnl=15
char id=180 x=433 y=99 width=7 height=32 xoffset=7 yoffset=0 xadvance=17 page=0 chnl=15
char id=181 x=167 y=33 width=14 height=32 xoffset=3 yoffset=0 xadvance=17 page=0 chnl=15
char id=182 x=308 y=66 width=13 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
char id=183 x=32 y=132 width=3 height=32 xoffset=7 yoffset=0 xadvance=17 page=0 chnl=15
char id=184 x=464 y=99 width=6 height=32 xoffset=5 yoffset=0 xadvance=17 page=0 chnl=15
char id=185 x=363 y=99 width=8 height=32 xoffset=5 yoffset=0 xadvance=17 page=0 chnl=15
char id=186 x=282 y=99 width=10 height=32 xoffset=3 yoffset=0 xadvance=17 page=0 chnl=15
char id=187 x=26 y=99 width=12 height=32 xoffset=3 yoffset=0 xadvance=17 page=0 chnl=15
char id=188 x=301 y=0 width=16 height=32 xoffset=0 yoffset=0 xadvance=17 page=0 chnl=15
char id=189 x=463 y=0 width=15 height=32 xoffset=0 yoffset=0 xadvance=17 page=0 chnl=15
char id=190 x=250 y=0 width=16 height=32 xoffset=0 yoffset=0 xadvance=17 page=0 chnl=15
char id=191 x=166 y=99 width=11 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
char id=215 x=322 y=66 width=13 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
char id=216 x=144 y=0 width=17 height=32 xoffset=0 yoffset=0 xadvance=17 page=0 chnl=15
char id=223 x=336 y=66 width=13 height=32 xoffset=3 yoffset=0 xadvance=17 page=0 chnl=15
char id=247 x=415 y=0 width=15 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
char id=248 x=383 y=0 width=15 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
char id=710 x=333 y=99 width=9 height=32 xoffset=4 yoffset=0 xadvance=17 page=0 chnl=15
char id=711 x=353 y=99 width=9 height=32 xoffset=4 yoffset=0 xadvance=17 page=0 chnl=15
char id=730 x=399 y=99 width=8 height=32 xoffset=5 yoffset=0 xadvance=17 page=0 chnl=15
char id=732 x=303 y=99 width=9 height=32 xoffset=4 yoffset=0 xadvance=17 page=0 chnl=15
char id=733 x=323 y=99 width=9 height=32 xoffset=5 yoffset=0 xadvance=17 page=0 chnl=15
char id=937 x=92 y=33 width=14 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
char id=960 x=335 y=0 width=15 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
char id=8211 x=90 y=0 width=17 height=32 xoffset=0 yoffset=0 xadvance=17 page=0 chnl=15
char id=8212 x=72 y=0 width=17 height=32 xoffset=0 yoffset=0 xadvance=17 page=0 chnl=15
char id=8216 x=0 y=132 width=4 height=32 xoffset=6 yoffset=0 xadvance=17 page=0 chnl=15
char id=8217 x=5 y=132 width=4 height=32 xoffset=7 yoffset=0 xadvance=17 page=0 chnl=15
char id=8218 x=10 y=132 width=4 height=32 xoffset=6 yoffset=0 xadvance=17 page=0 chnl=15
char id=8220 x=271 y=99 width=10 height=32 xoffset=4 yoffset=0 xadvance=17 page=0 chnl=15
char id=8221 x=238 y=99 width=10 height=32 xoffset=4 yoffset=0 xadvance=17 page=0 chnl=15
char id=8222 x=249 y=99 width=10 height=32 xoffset=4 yoffset=0 xadvance=17 page=0 chnl=15
char id=8226 x=381 y=99 width=8 height=32 xoffset=4 yoffset=0 xadvance=17 page=0 chnl=15
char id=8230 x=399 y=0 width=15 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
char id=8249 x=478 y=99 width=6 height=32 xoffset=5 yoffset=0 xadvance=17 page=0 chnl=15
char id=8250 x=485 y=99 width=6 height=32 xoffset=6 yoffset=0 xadvance=17 page=0 chnl=15
char id=8706 x=117 y=99 width=12 height=32 xoffset=3 yoffset=0 xadvance=17 page=0 chnl=15
char id=8710 x=54 y=0 width=17 height=32 xoffset=0 yoffset=0 xadvance=17 page=0 chnl=15
char id=8719 x=350 y=66 width=13 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
char id=8721 x=364 y=66 width=13 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
char id=8722 x=392 y=33 width=14 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
char id=8725 x=47 y=33 width=14 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
char id=8729 x=48 y=132 width=3 height=32 xoffset=7 yoffset=0 xadvance=17 page=0 chnl=15
char id=8730 x=351 y=0 width=15 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
char id=8734 x=216 y=0 width=16 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
char id=8747 x=378 y=66 width=13 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15
char id=8776 x=407 y=33 width=14 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
char id=8800 x=422 y=33 width=14 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
char id=8804 x=437 y=33 width=14 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
char id=8805 x=452 y=33 width=14 height=32 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
char id=9674 x=152 y=33 width=14 height=32 xoffset=2 yoffset=0 xadvance=17 page=0 chnl=15

BIN
font/vera_sans_mono32_0.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View File

@ -0,0 +1,56 @@
# AngelCode Bitmap Font Generator configuration file
fileVersion=1
# font settings
fontName=Bitstream Vera Sans Mono
fontFile=
charSet=0
fontSize=48
aa=1
scaleH=100
useSmoothing=1
isBold=0
isItalic=0
useUnicode=1
disableBoxChars=1
outputInvalidCharGlyph=0
dontIncludeKerningPairs=0
useHinting=1
renderFromOutline=0
useClearType=1
# character alignment
paddingDown=0
paddingUp=0
paddingRight=0
paddingLeft=0
spacingHoriz=1
spacingVert=1
useFixedHeight=1
forceZero=0
# output file
outWidth=512
outHeight=512
outBitDepth=32
fontDescFormat=0
fourChnlPacked=0
textureFormat=png
textureCompression=0
alphaChnl=1
redChnl=0
greenChnl=0
blueChnl=0
invA=0
invR=0
invG=0
invB=0
# outline
outlineThickness=0
# selected chars
chars=32-126,160-191,215-216,223,247-248,710-711,730,732-733,937,960,8211-8212,8216-8218,8220-8222,8226
chars=8230,8249-8250,8706,8710,8719,8721-8722,8725,8729-8730,8734,8747,8776,8800,8804-8805,9674
# imported icon images

170
font/vera_sans_mono48.fnt Normal file
View File

@ -0,0 +1,170 @@
info face="Bitstream Vera Sans Mono" size=48 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1 outline=0
common lineHeight=48 base=38 scaleW=512 scaleH=512 pages=1 packed=0 alphaChnl=1 redChnl=0 greenChnl=0 blueChnl=0
page id=0 file="vera_sans_mono48_0.png"
chars count=166
char id=32 x=173 y=294 width=3 height=48 xoffset=-1 yoffset=0 xadvance=25 page=0 chnl=15
char id=33 x=149 y=294 width=5 height=48 xoffset=10 yoffset=0 xadvance=25 page=0 chnl=15
char id=34 x=371 y=245 width=13 height=48 xoffset=6 yoffset=0 xadvance=25 page=0 chnl=15
char id=35 x=0 y=0 width=26 height=48 xoffset=-1 yoffset=0 xadvance=25 page=0 chnl=15
char id=36 x=438 y=147 width=20 height=48 xoffset=3 yoffset=0 xadvance=25 page=0 chnl=15
char id=37 x=320 y=0 width=25 height=48 xoffset=0 yoffset=0 xadvance=25 page=0 chnl=15
char id=38 x=216 y=0 width=25 height=48 xoffset=0 yoffset=0 xadvance=25 page=0 chnl=15
char id=39 x=155 y=294 width=5 height=48 xoffset=10 yoffset=0 xadvance=25 page=0 chnl=15
char id=40 x=501 y=147 width=10 height=48 xoffset=8 yoffset=0 xadvance=25 page=0 chnl=15
char id=41 x=501 y=0 width=10 height=48 xoffset=7 yoffset=0 xadvance=25 page=0 chnl=15
char id=42 x=0 y=245 width=19 height=48 xoffset=3 yoffset=0 xadvance=25 page=0 chnl=15
char id=43 x=456 y=49 width=23 height=48 xoffset=1 yoffset=0 xadvance=25 page=0 chnl=15
char id=44 x=110 y=294 width=8 height=48 xoffset=8 yoffset=0 xadvance=25 page=0 chnl=15
char id=45 x=496 y=245 width=12 height=48 xoffset=6 yoffset=0 xadvance=25 page=0 chnl=15
char id=46 x=135 y=294 width=7 height=48 xoffset=9 yoffset=0 xadvance=25 page=0 chnl=15
char id=47 x=481 y=98 width=21 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
char id=48 x=0 y=147 width=21 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
char id=49 x=20 y=245 width=19 height=48 xoffset=4 yoffset=0 xadvance=25 page=0 chnl=15
char id=50 x=273 y=196 width=20 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
char id=51 x=22 y=147 width=21 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
char id=52 x=408 y=49 width=23 height=48 xoffset=1 yoffset=0 xadvance=25 page=0 chnl=15
char id=53 x=417 y=147 width=20 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
char id=54 x=66 y=147 width=21 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
char id=55 x=88 y=147 width=21 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
char id=56 x=110 y=147 width=21 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
char id=57 x=132 y=147 width=21 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
char id=58 x=127 y=294 width=7 height=48 xoffset=9 yoffset=0 xadvance=25 page=0 chnl=15
char id=59 x=101 y=294 width=8 height=48 xoffset=8 yoffset=0 xadvance=25 page=0 chnl=15
char id=60 x=192 y=49 width=23 height=48 xoffset=1 yoffset=0 xadvance=25 page=0 chnl=15
char id=61 x=216 y=49 width=23 height=48 xoffset=1 yoffset=0 xadvance=25 page=0 chnl=15
char id=62 x=240 y=49 width=23 height=48 xoffset=1 yoffset=0 xadvance=25 page=0 chnl=15
char id=63 x=116 y=245 width=18 height=48 xoffset=4 yoffset=0 xadvance=25 page=0 chnl=15
char id=64 x=294 y=0 width=25 height=48 xoffset=0 yoffset=0 xadvance=25 page=0 chnl=15
char id=65 x=424 y=0 width=25 height=48 xoffset=0 yoffset=0 xadvance=25 page=0 chnl=15
char id=66 x=154 y=147 width=21 height=48 xoffset=3 yoffset=0 xadvance=25 page=0 chnl=15
char id=67 x=210 y=196 width=20 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
char id=68 x=176 y=147 width=21 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
char id=69 x=42 y=196 width=20 height=48 xoffset=3 yoffset=0 xadvance=25 page=0 chnl=15
char id=70 x=314 y=196 width=19 height=48 xoffset=4 yoffset=0 xadvance=25 page=0 chnl=15
char id=71 x=198 y=147 width=21 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
char id=72 x=44 y=147 width=21 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
char id=73 x=135 y=245 width=18 height=48 xoffset=3 yoffset=0 xadvance=25 page=0 chnl=15
char id=74 x=59 y=245 width=18 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
char id=75 x=0 y=98 width=23 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
char id=76 x=0 y=196 width=20 height=48 xoffset=4 yoffset=0 xadvance=25 page=0 chnl=15
char id=77 x=48 y=98 width=23 height=48 xoffset=1 yoffset=0 xadvance=25 page=0 chnl=15
char id=78 x=220 y=147 width=21 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
char id=79 x=242 y=147 width=21 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
char id=80 x=264 y=147 width=21 height=48 xoffset=3 yoffset=0 xadvance=25 page=0 chnl=15
char id=81 x=286 y=147 width=21 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
char id=82 x=168 y=98 width=23 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
char id=83 x=308 y=147 width=21 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
char id=84 x=268 y=0 width=25 height=48 xoffset=0 yoffset=0 xadvance=25 page=0 chnl=15
char id=85 x=330 y=147 width=21 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
char id=86 x=432 y=49 width=23 height=48 xoffset=1 yoffset=0 xadvance=25 page=0 chnl=15
char id=87 x=27 y=0 width=26 height=48 xoffset=-1 yoffset=0 xadvance=25 page=0 chnl=15
char id=88 x=372 y=0 width=25 height=48 xoffset=0 yoffset=0 xadvance=25 page=0 chnl=15
char id=89 x=398 y=0 width=25 height=48 xoffset=0 yoffset=0 xadvance=25 page=0 chnl=15
char id=90 x=238 y=98 width=22 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
char id=91 x=0 y=294 width=11 height=48 xoffset=8 yoffset=0 xadvance=25 page=0 chnl=15
char id=92 x=352 y=147 width=21 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
char id=93 x=24 y=294 width=11 height=48 xoffset=6 yoffset=0 xadvance=25 page=0 chnl=15
char id=94 x=144 y=98 width=23 height=48 xoffset=1 yoffset=0 xadvance=25 page=0 chnl=15
char id=95 x=215 y=98 width=22 height=48 xoffset=-1 yoffset=0 xadvance=25 page=0 chnl=15
char id=96 x=12 y=294 width=11 height=48 xoffset=5 yoffset=0 xadvance=25 page=0 chnl=15
char id=97 x=374 y=147 width=21 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
char id=98 x=105 y=196 width=20 height=48 xoffset=3 yoffset=0 xadvance=25 page=0 chnl=15
char id=99 x=454 y=196 width=19 height=48 xoffset=3 yoffset=0 xadvance=25 page=0 chnl=15
char id=100 x=168 y=196 width=20 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
char id=101 x=261 y=98 width=21 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
char id=102 x=414 y=196 width=19 height=48 xoffset=3 yoffset=0 xadvance=25 page=0 chnl=15
char id=103 x=84 y=196 width=20 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
char id=104 x=394 y=196 width=19 height=48 xoffset=3 yoffset=0 xadvance=25 page=0 chnl=15
char id=105 x=63 y=196 width=20 height=48 xoffset=3 yoffset=0 xadvance=25 page=0 chnl=15
char id=106 x=311 y=245 width=14 height=48 xoffset=3 yoffset=0 xadvance=25 page=0 chnl=15
char id=107 x=283 y=98 width=21 height=48 xoffset=4 yoffset=0 xadvance=25 page=0 chnl=15
char id=108 x=189 y=196 width=20 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
char id=109 x=360 y=49 width=23 height=48 xoffset=1 yoffset=0 xadvance=25 page=0 chnl=15
char id=110 x=474 y=196 width=19 height=48 xoffset=3 yoffset=0 xadvance=25 page=0 chnl=15
char id=111 x=305 y=98 width=21 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
char id=112 x=459 y=147 width=20 height=48 xoffset=3 yoffset=0 xadvance=25 page=0 chnl=15
char id=113 x=480 y=147 width=20 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
char id=114 x=40 y=245 width=18 height=48 xoffset=6 yoffset=0 xadvance=25 page=0 chnl=15
char id=115 x=208 y=245 width=17 height=48 xoffset=4 yoffset=0 xadvance=25 page=0 chnl=15
char id=116 x=21 y=196 width=20 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
char id=117 x=434 y=196 width=19 height=48 xoffset=3 yoffset=0 xadvance=25 page=0 chnl=15
char id=118 x=192 y=98 width=22 height=48 xoffset=1 yoffset=0 xadvance=25 page=0 chnl=15
char id=119 x=189 y=0 width=26 height=48 xoffset=-1 yoffset=0 xadvance=25 page=0 chnl=15
char id=120 x=288 y=49 width=23 height=48 xoffset=1 yoffset=0 xadvance=25 page=0 chnl=15
char id=121 x=96 y=98 width=23 height=48 xoffset=1 yoffset=0 xadvance=25 page=0 chnl=15
char id=122 x=374 y=196 width=19 height=48 xoffset=3 yoffset=0 xadvance=25 page=0 chnl=15
char id=123 x=190 y=245 width=17 height=48 xoffset=4 yoffset=0 xadvance=25 page=0 chnl=15
char id=124 x=161 y=294 width=5 height=48 xoffset=10 yoffset=0 xadvance=25 page=0 chnl=15
char id=125 x=154 y=245 width=17 height=48 xoffset=4 yoffset=0 xadvance=25 page=0 chnl=15
char id=126 x=264 y=49 width=23 height=48 xoffset=1 yoffset=0 xadvance=25 page=0 chnl=15
char id=160 x=177 y=294 width=3 height=48 xoffset=-1 yoffset=0 xadvance=25 page=0 chnl=15
char id=161 x=167 y=294 width=5 height=48 xoffset=10 yoffset=0 xadvance=25 page=0 chnl=15
char id=162 x=334 y=196 width=19 height=48 xoffset=3 yoffset=0 xadvance=25 page=0 chnl=15
char id=163 x=349 y=98 width=21 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
char id=164 x=354 y=196 width=19 height=48 xoffset=4 yoffset=0 xadvance=25 page=0 chnl=15
char id=165 x=450 y=0 width=25 height=48 xoffset=0 yoffset=0 xadvance=25 page=0 chnl=15
char id=166 x=143 y=294 width=5 height=48 xoffset=10 yoffset=0 xadvance=25 page=0 chnl=15
char id=167 x=97 y=245 width=18 height=48 xoffset=3 yoffset=0 xadvance=25 page=0 chnl=15
char id=168 x=441 y=245 width=13 height=48 xoffset=6 yoffset=0 xadvance=25 page=0 chnl=15
char id=169 x=162 y=0 width=26 height=48 xoffset=-1 yoffset=0 xadvance=25 page=0 chnl=15
char id=170 x=279 y=245 width=15 height=48 xoffset=4 yoffset=0 xadvance=25 page=0 chnl=15
char id=171 x=252 y=196 width=20 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
char id=172 x=72 y=98 width=23 height=48 xoffset=1 yoffset=0 xadvance=25 page=0 chnl=15
char id=173 x=483 y=245 width=12 height=48 xoffset=6 yoffset=0 xadvance=25 page=0 chnl=15
char id=174 x=81 y=0 width=26 height=48 xoffset=-1 yoffset=0 xadvance=25 page=0 chnl=15
char id=175 x=427 y=245 width=13 height=48 xoffset=6 yoffset=0 xadvance=25 page=0 chnl=15
char id=176 x=356 y=245 width=14 height=48 xoffset=5 yoffset=0 xadvance=25 page=0 chnl=15
char id=177 x=336 y=49 width=23 height=48 xoffset=1 yoffset=0 xadvance=25 page=0 chnl=15
char id=178 x=399 y=245 width=13 height=48 xoffset=6 yoffset=0 xadvance=25 page=0 chnl=15
char id=179 x=469 y=245 width=13 height=48 xoffset=6 yoffset=0 xadvance=25 page=0 chnl=15
char id=180 x=60 y=294 width=11 height=48 xoffset=9 yoffset=0 xadvance=25 page=0 chnl=15
char id=181 x=371 y=98 width=21 height=48 xoffset=3 yoffset=0 xadvance=25 page=0 chnl=15
char id=182 x=126 y=196 width=20 height=48 xoffset=1 yoffset=0 xadvance=25 page=0 chnl=15
char id=183 x=119 y=294 width=7 height=48 xoffset=9 yoffset=0 xadvance=25 page=0 chnl=15
char id=184 x=72 y=294 width=10 height=48 xoffset=7 yoffset=0 xadvance=25 page=0 chnl=15
char id=185 x=385 y=245 width=13 height=48 xoffset=6 yoffset=0 xadvance=25 page=0 chnl=15
char id=186 x=226 y=245 width=17 height=48 xoffset=4 yoffset=0 xadvance=25 page=0 chnl=15
char id=187 x=231 y=196 width=20 height=48 xoffset=3 yoffset=0 xadvance=25 page=0 chnl=15
char id=188 x=48 y=49 width=23 height=48 xoffset=0 yoffset=0 xadvance=25 page=0 chnl=15
char id=189 x=120 y=49 width=23 height=48 xoffset=0 yoffset=0 xadvance=25 page=0 chnl=15
char id=190 x=96 y=49 width=23 height=48 xoffset=0 yoffset=0 xadvance=25 page=0 chnl=15
char id=191 x=78 y=245 width=18 height=48 xoffset=3 yoffset=0 xadvance=25 page=0 chnl=15
char id=215 x=147 y=196 width=20 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
char id=216 x=346 y=0 width=25 height=48 xoffset=0 yoffset=0 xadvance=25 page=0 chnl=15
char id=223 x=393 y=98 width=21 height=48 xoffset=3 yoffset=0 xadvance=25 page=0 chnl=15
char id=247 x=120 y=98 width=23 height=48 xoffset=1 yoffset=0 xadvance=25 page=0 chnl=15
char id=248 x=476 y=0 width=24 height=48 xoffset=0 yoffset=0 xadvance=25 page=0 chnl=15
char id=710 x=326 y=245 width=14 height=48 xoffset=5 yoffset=0 xadvance=25 page=0 chnl=15
char id=711 x=341 y=245 width=14 height=48 xoffset=5 yoffset=0 xadvance=25 page=0 chnl=15
char id=730 x=413 y=245 width=13 height=48 xoffset=6 yoffset=0 xadvance=25 page=0 chnl=15
char id=732 x=295 y=245 width=15 height=48 xoffset=5 yoffset=0 xadvance=25 page=0 chnl=15
char id=733 x=262 y=245 width=16 height=48 xoffset=6 yoffset=0 xadvance=25 page=0 chnl=15
char id=937 x=24 y=98 width=23 height=48 xoffset=1 yoffset=0 xadvance=25 page=0 chnl=15
char id=960 x=480 y=49 width=23 height=48 xoffset=1 yoffset=0 xadvance=25 page=0 chnl=15
char id=8211 x=135 y=0 width=26 height=48 xoffset=-1 yoffset=0 xadvance=25 page=0 chnl=15
char id=8212 x=108 y=0 width=26 height=48 xoffset=-1 yoffset=0 xadvance=25 page=0 chnl=15
char id=8216 x=503 y=98 width=8 height=48 xoffset=9 yoffset=0 xadvance=25 page=0 chnl=15
char id=8217 x=83 y=294 width=8 height=48 xoffset=9 yoffset=0 xadvance=25 page=0 chnl=15
char id=8218 x=92 y=294 width=8 height=48 xoffset=8 yoffset=0 xadvance=25 page=0 chnl=15
char id=8220 x=494 y=196 width=17 height=48 xoffset=4 yoffset=0 xadvance=25 page=0 chnl=15
char id=8221 x=244 y=245 width=17 height=48 xoffset=4 yoffset=0 xadvance=25 page=0 chnl=15
char id=8222 x=172 y=245 width=17 height=48 xoffset=4 yoffset=0 xadvance=25 page=0 chnl=15
char id=8226 x=455 y=245 width=13 height=48 xoffset=6 yoffset=0 xadvance=25 page=0 chnl=15
char id=8230 x=384 y=49 width=23 height=48 xoffset=1 yoffset=0 xadvance=25 page=0 chnl=15
char id=8249 x=36 y=294 width=11 height=48 xoffset=6 yoffset=0 xadvance=25 page=0 chnl=15
char id=8250 x=48 y=294 width=11 height=48 xoffset=8 yoffset=0 xadvance=25 page=0 chnl=15
char id=8706 x=294 y=196 width=19 height=48 xoffset=3 yoffset=0 xadvance=25 page=0 chnl=15
char id=8710 x=54 y=0 width=26 height=48 xoffset=-1 yoffset=0 xadvance=25 page=0 chnl=15
char id=8719 x=396 y=147 width=20 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
char id=8721 x=415 y=98 width=21 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
char id=8722 x=312 y=49 width=23 height=48 xoffset=1 yoffset=0 xadvance=25 page=0 chnl=15
char id=8725 x=437 y=98 width=21 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
char id=8729 x=504 y=49 width=7 height=48 xoffset=9 yoffset=0 xadvance=25 page=0 chnl=15
char id=8730 x=144 y=49 width=23 height=48 xoffset=1 yoffset=0 xadvance=25 page=0 chnl=15
char id=8734 x=242 y=0 width=25 height=48 xoffset=0 yoffset=0 xadvance=25 page=0 chnl=15
char id=8747 x=459 y=98 width=21 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15
char id=8776 x=168 y=49 width=23 height=48 xoffset=1 yoffset=0 xadvance=25 page=0 chnl=15
char id=8800 x=72 y=49 width=23 height=48 xoffset=1 yoffset=0 xadvance=25 page=0 chnl=15
char id=8804 x=24 y=49 width=23 height=48 xoffset=1 yoffset=0 xadvance=25 page=0 chnl=15
char id=8805 x=0 y=49 width=23 height=48 xoffset=1 yoffset=0 xadvance=25 page=0 chnl=15
char id=9674 x=327 y=98 width=21 height=48 xoffset=2 yoffset=0 xadvance=25 page=0 chnl=15

BIN
font/vera_sans_mono48_0.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

View File

@ -41,6 +41,9 @@ AppFrame::AppFrame() :
this->SetSizer(vbox);
waterfallCanvas->SetFocusFromKbd();
waterfallCanvas->SetFocus();
// SetIcon(wxICON(sample));
// Make a menubar

View File

@ -21,12 +21,11 @@ bool CubicSDR::OnInit() {
frequency = DEFAULT_FREQ;
demodulatorTest = demodMgr.newThread();
demodulatorTest->getParams().frequency = DEFAULT_FREQ;
demodulatorTest->run();
audioVisualQueue = new DemodulatorThreadOutputQueue();
demodulatorTest->setVisualOutputQueue(audioVisualQueue);
audioVisualQueue->set_max_num_items(1);
// demodulatorTest[0]->setVisualOutputQueue(audioVisualQueue);
// demodMgr.setActiveDemodulator(demodulatorTest[0]);
threadCmdQueueSDR = new SDRThreadCommandQueue;
sdrThread = new SDRThread(threadCmdQueueSDR);
@ -35,13 +34,12 @@ bool CubicSDR::OnInit() {
iqPostDataQueue = new SDRThreadIQDataQueue;
iqVisualQueue = new SDRThreadIQDataQueue;
iqVisualQueue->set_max_num_items(1);
sdrThread->setIQDataOutQueue(iqPostDataQueue);
sdrPostThread->setIQDataInQueue(iqPostDataQueue);
sdrPostThread->setIQVisualQueue(iqVisualQueue);
sdrPostThread->bindDemodulator(demodulatorTest);
t_PostSDR = new std::thread(&SDRPostThread::threadMain, sdrPostThread);
t_SDR = new std::thread(&SDRThread::threadMain, sdrThread);
@ -77,7 +75,6 @@ int CubicSDR::OnExit() {
demodMgr.terminateAll();
delete threadCmdQueueSDR;
delete iqVisualQueue;
@ -112,3 +109,29 @@ void CubicSDR::setFrequency(unsigned int freq) {
int CubicSDR::getFrequency() {
return frequency;
}
DemodulatorThreadOutputQueue* CubicSDR::getAudioVisualQueue() {
return audioVisualQueue;
}
SDRThreadIQDataQueue* CubicSDR::getIQVisualQueue() {
return iqVisualQueue;
}
DemodulatorMgr &CubicSDR::getDemodMgr() {
return demodMgr;
}
void CubicSDR::bindDemodulator(DemodulatorInstance *demod) {
if (!demod) {
return;
}
sdrPostThread->bindDemodulator(demod);
}
void CubicSDR::removeDemodulator(DemodulatorInstance *demod) {
if (!demod) {
return;
}
sdrPostThread->removeDemodulator(demod);
}

View File

@ -15,11 +15,13 @@
#include "AudioThread.h"
#include "DemodulatorMgr.h"
#define NUM_DEMODULATORS 1
class CubicSDR: public wxApp {
public:
CubicSDR() :
m_glContext(NULL), t_PostSDR(NULL), t_SDR(NULL), audioVisualQueue(NULL), threadCmdQueueSDR(NULL), iqVisualQueue(NULL), frequency(
DEFAULT_FREQ), sdrPostThread(NULL), iqPostDataQueue(NULL), sdrThread(NULL), demodulatorTest(NULL) {
DEFAULT_FREQ), sdrPostThread(NULL), iqPostDataQueue(NULL), sdrThread(NULL) {
}
@ -31,21 +33,12 @@ public:
void setFrequency(unsigned int freq);
int getFrequency();
DemodulatorThreadOutputQueue* getAudioVisualQueue() {
return audioVisualQueue;
}
DemodulatorThreadOutputQueue* getAudioVisualQueue();
SDRThreadIQDataQueue* getIQVisualQueue();
DemodulatorMgr &getDemodMgr();
SDRThreadIQDataQueue* getIQVisualQueue() {
return iqVisualQueue;
}
DemodulatorInstance *getDemodTest() {
return demodulatorTest;
}
DemodulatorMgr &getDemodMgr() {
return demodMgr;
}
void bindDemodulator(DemodulatorInstance *demod);
void removeDemodulator(DemodulatorInstance *demod);
private:
PrimaryGLContext *m_glContext;
@ -54,8 +47,6 @@ private:
unsigned int frequency;
DemodulatorInstance *demodulatorTest;
SDRThread *sdrThread;
SDRPostThread *sdrPostThread;

View File

@ -1,9 +1,10 @@
#include "AudioThread.h"
#include "CubicSDRDefs.h"
#include <vector>
#include "DemodulatorThread.h"
AudioThread::AudioThread(AudioThreadInputQueue *inputQueue) :
inputQueue(inputQueue), terminated(false), audio_queue_ptr(0), underflow_count(0) {
AudioThread::AudioThread(AudioThreadInputQueue *inputQueue, DemodulatorThreadCommandQueue* threadQueueNotify) :
inputQueue(inputQueue), terminated(false), audio_queue_ptr(0), underflow_count(0), threadQueueNotify(threadQueueNotify) {
}
@ -135,6 +136,10 @@ void AudioThread::threadMain() {
}
std::cout << "Audio thread done." << std::endl;
DemodulatorThreadCommand tCmd(DemodulatorThreadCommand::DEMOD_THREAD_CMD_AUDIO_TERMINATED);
tCmd.context = this;
threadQueueNotify->push(tCmd);
}
void AudioThread::terminate() {

View File

@ -15,6 +15,7 @@
#include "AudioThread.h"
#include "ThreadQueue.h"
#include "RtAudio.h"
#include "DemodDefs.h"
class AudioThreadInput {
public:
@ -32,7 +33,7 @@ public:
std::atomic<unsigned int> audio_queue_ptr;
std::atomic<unsigned int> underflow_count;
AudioThread(AudioThreadInputQueue *inputQueue);
AudioThread(AudioThreadInputQueue *inputQueue, DemodulatorThreadCommandQueue* threadQueueNotify);
~AudioThread();
void threadMain();
@ -42,5 +43,6 @@ private:
AudioThreadInputQueue *inputQueue;
RtAudio dac;
std::atomic<bool> terminated;
DemodulatorThreadCommandQueue* threadQueueNotify;
};

87
src/demod/DemodDefs.h Normal file
View File

@ -0,0 +1,87 @@
#pragma once
#include "ThreadQueue.h"
enum DemodulatorType {
DEMOD_TYPE_NULL,
DEMOD_TYPE_AM,
DEMOD_TYPE_FM,
DEMOD_TYPE_LSB,
DEMOD_TYPE_USB
};
class DemodulatorThread;
class DemodulatorThreadCommand {
public:
enum DemodulatorThreadCommandEnum {
DEMOD_THREAD_CMD_NULL,
DEMOD_THREAD_CMD_SET_BANDWIDTH,
DEMOD_THREAD_CMD_SET_FREQUENCY,
DEMOD_THREAD_CMD_DEMOD_TERMINATED,
DEMOD_THREAD_CMD_AUDIO_TERMINATED
};
DemodulatorThreadCommand() :
cmd(DEMOD_THREAD_CMD_NULL), int_value(0), context(NULL) {
}
DemodulatorThreadCommand(DemodulatorThreadCommandEnum cmd) :
cmd(cmd), int_value(0), context(NULL) {
}
DemodulatorThreadCommandEnum cmd;
void *context;
int int_value;
};
class DemodulatorThreadIQData {
public:
unsigned int frequency;
unsigned int bandwidth;
std::vector<signed char> data;
DemodulatorThreadIQData() :
frequency(0), bandwidth(0) {
}
DemodulatorThreadIQData(unsigned int bandwidth, unsigned int frequency,
std::vector<signed char> data) :
data(data), frequency(frequency), bandwidth(bandwidth) {
}
~DemodulatorThreadIQData() {
}
};
class DemodulatorThreadAudioData {
public:
unsigned int frequency;
unsigned int sampleRate;
unsigned char channels;
std::vector<float> data;
DemodulatorThreadAudioData() :
sampleRate(0), frequency(0), channels(0) {
}
DemodulatorThreadAudioData(unsigned int frequency, unsigned int sampleRate,
std::vector<float> data) :
data(data), sampleRate(sampleRate), frequency(frequency), channels(
1) {
}
~DemodulatorThreadAudioData() {
}
};
typedef ThreadQueue<DemodulatorThreadIQData> DemodulatorThreadInputQueue;
typedef ThreadQueue<DemodulatorThreadCommand> DemodulatorThreadCommandQueue;

View File

@ -1,28 +1,31 @@
#include <DemodulatorMgr.h>
#include <sstream>
#include <algorithm>
#include "CubicSDR.h"
#include <string>
#include <sstream>
DemodulatorInstance::DemodulatorInstance() :
t_Demod(NULL), t_Audio(NULL), threadQueueDemod(NULL), demodulatorThread(NULL) {
t_Demod(NULL), t_Audio(NULL), threadQueueDemod(NULL), demodulatorThread(NULL), terminated(false), audioTerminated(false), demodTerminated(
false) {
label = new std::string("Unnamed");
threadQueueDemod = new DemodulatorThreadInputQueue;
threadQueueCommand = new DemodulatorThreadCommandQueue;
demodulatorThread = new DemodulatorThread(threadQueueDemod);
threadQueueNotify = new DemodulatorThreadCommandQueue;
demodulatorThread = new DemodulatorThread(threadQueueDemod, threadQueueNotify);
demodulatorThread->setCommandQueue(threadQueueCommand);
audioInputQueue = new AudioThreadInputQueue;
audioThread = new AudioThread(audioInputQueue);
audioThread = new AudioThread(audioInputQueue, threadQueueNotify);
demodulatorThread->setAudioInputQueue(audioInputQueue);
}
DemodulatorInstance::~DemodulatorInstance() {
delete audioThread;
delete t_Audio;
delete demodulatorThread;
delete audioInputQueue;
delete threadQueueDemod;
delete demodulatorThread;
#ifndef __APPLE__
delete t_Demod;
#endif
}
void DemodulatorInstance::setVisualOutputQueue(DemodulatorThreadOutputQueue *tQueue) {
@ -30,46 +33,32 @@ void DemodulatorInstance::setVisualOutputQueue(DemodulatorThreadOutputQueue *tQu
}
void DemodulatorInstance::run() {
if (t_Demod) {
terminate();
delete threadQueueDemod;
delete demodulatorThread;
delete t_Demod;
delete audioThread;
delete audioInputQueue;
delete t_Audio;
threadQueueDemod = new DemodulatorThreadInputQueue;
threadQueueCommand = new DemodulatorThreadCommandQueue;
demodulatorThread = new DemodulatorThread(threadQueueDemod);
demodulatorThread->setCommandQueue(threadQueueCommand);
audioInputQueue = new AudioThreadInputQueue;
audioThread = new AudioThread(audioInputQueue);
demodulatorThread->setAudioInputQueue(audioInputQueue);
}
t_Audio = new std::thread(&AudioThread::threadMain, audioThread);
#ifdef __APPLE__ // Already using pthreads, might as well do some custom init..
pthread_attr_t attr;
size_t size;
pthread_attr_t attr;
size_t size;
pthread_attr_init(&attr);
pthread_attr_setstacksize(&attr, 2048000);
pthread_attr_getstacksize(&attr, &size);
pthread_attr_init(&attr);
pthread_attr_setstacksize(&attr, 2048000);
pthread_attr_getstacksize(&attr, &size);
pthread_create(&t_Demod, &attr, &DemodulatorThread::pthread_helper, demodulatorThread);
pthread_attr_destroy(&attr);
pthread_attr_destroy(&attr);
std::cout << "Initialized demodulator stack size of " << size << std::endl;
std::cout << "Initialized demodulator stack size of " << size << std::endl;
#else
t_Demod = new std::thread(&DemodulatorThread::threadMain, demodulatorThread);
#endif
}
void DemodulatorInstance::updateLabel(int freq) {
std::stringstream newLabel;
newLabel.precision(3);
newLabel << std::fixed << ((float) freq / 1000000.0);
setLabel(newLabel.str());
}
DemodulatorThreadCommandQueue *DemodulatorInstance::getCommandQueue() {
return threadQueueCommand;
}
@ -81,17 +70,29 @@ DemodulatorThreadParameters &DemodulatorInstance::getParams() {
void DemodulatorInstance::terminate() {
std::cout << "Terminating demodulator thread.." << std::endl;
demodulatorThread->terminate();
#ifdef __APPLE__
pthread_join(t_Demod,NULL);
#else
t_Demod->join();
#endif
//#ifdef __APPLE__
// pthread_join(t_Demod,NULL);
//#else
//#endif
std::cout << "Terminating demodulator audio thread.." << std::endl;
audioThread->terminate();
t_Audio->join();
}
DemodulatorMgr::DemodulatorMgr() {
std::string DemodulatorInstance::getLabel() {
return *(label.load());
}
void DemodulatorInstance::setLabel(std::string labelStr) {
std::string *newLabel = new std::string;
newLabel->append(labelStr);
std::string *oldLabel;
oldLabel = label;
label = newLabel;
delete oldLabel;
}
DemodulatorMgr::DemodulatorMgr() :
activeDemodulator(NULL), lastActiveDemodulator(NULL), activeVisualDemodulator(NULL) {
}
@ -101,16 +102,20 @@ DemodulatorMgr::~DemodulatorMgr() {
DemodulatorInstance *DemodulatorMgr::newThread() {
DemodulatorInstance *newDemod = new DemodulatorInstance;
demods.push_back(newDemod);
std::stringstream label;
label << demods.size();
newDemod->setLabel(label.str());
return newDemod;
}
void DemodulatorMgr::terminateAll() {
while (demods.size()) {
DemodulatorInstance *d = demods.back();
demods.pop_back();
d->terminate();
delete d;
deleteThread(d);
}
}
@ -118,6 +123,31 @@ std::vector<DemodulatorInstance *> &DemodulatorMgr::getDemodulators() {
return demods;
}
void DemodulatorMgr::deleteThread(DemodulatorInstance *demod) {
std::vector<DemodulatorInstance *>::iterator i;
i = std::find(demods.begin(), demods.end(), demod);
if (activeDemodulator == demod) {
activeDemodulator = NULL;
}
if (lastActiveDemodulator == demod) {
lastActiveDemodulator = NULL;
}
if (activeVisualDemodulator == demod) {
activeVisualDemodulator = NULL;
}
if (i != demods.end()) {
demods.erase(i);
demod->terminate();
}
demods_deleted.push_back(demod);
garbageCollect();
}
std::vector<DemodulatorInstance *> *DemodulatorMgr::getDemodulatorsAt(int freq, int bandwidth) {
std::vector<DemodulatorInstance *> *foundDemods = new std::vector<DemodulatorInstance *>();
@ -137,3 +167,88 @@ std::vector<DemodulatorInstance *> *DemodulatorMgr::getDemodulatorsAt(int freq,
return foundDemods;
}
void DemodulatorMgr::setActiveDemodulator(DemodulatorInstance *demod, bool temporary) {
if (!temporary) {
if (activeDemodulator != NULL) {
lastActiveDemodulator = activeDemodulator;
} else {
lastActiveDemodulator = demod;
}
}
if (activeVisualDemodulator) {
activeVisualDemodulator->setVisualOutputQueue(NULL);
}
if (demod) {
demod->setVisualOutputQueue(wxGetApp().getAudioVisualQueue());
activeVisualDemodulator = demod;
} else {
DemodulatorInstance *last = getLastActiveDemodulator();
if (last) {
last->setVisualOutputQueue(wxGetApp().getAudioVisualQueue());
}
activeVisualDemodulator = last;
}
activeDemodulator = demod;
garbageCollect();
}
DemodulatorInstance *DemodulatorMgr::getActiveDemodulator() {
return activeDemodulator;
}
DemodulatorInstance *DemodulatorMgr::getLastActiveDemodulator() {
if (std::find(demods.begin(), demods.end(), lastActiveDemodulator) == demods.end()) {
lastActiveDemodulator = activeDemodulator;
}
return lastActiveDemodulator;
}
void DemodulatorMgr::garbageCollect() {
if (demods_deleted.size()) {
std::vector<DemodulatorInstance *>::iterator i;
for (i = demods_deleted.begin(); i != demods_deleted.end(); i++) {
if ((*i)->isTerminated()) {
DemodulatorInstance *deleted = (*i);
demods_deleted.erase(i);
std::cout << "Garbage collected demodulator instance " << deleted->getLabel() << std::endl;
delete deleted;
return;
}
}
}
}
bool DemodulatorInstance::isTerminated() {
while (!threadQueueNotify->empty()) {
DemodulatorThreadCommand cmd;
threadQueueNotify->pop(cmd);
switch (cmd.cmd) {
case DemodulatorThreadCommand::DEMOD_THREAD_CMD_AUDIO_TERMINATED:
audioThread = NULL;
t_Audio->join();
audioTerminated = true;
break;
case DemodulatorThreadCommand::DEMOD_THREAD_CMD_DEMOD_TERMINATED:
demodulatorThread = NULL;
t_Demod->join();
demodTerminated = true;
break;
default:
break;
}
}
terminated = audioTerminated && demodTerminated;
return terminated;
}

View File

@ -11,6 +11,7 @@ public:
DemodulatorThreadInputQueue* threadQueueDemod;
DemodulatorThreadCommandQueue* threadQueueCommand;
DemodulatorThreadCommandQueue* threadQueueNotify;
DemodulatorThread *demodulatorThread;
#ifdef __APPLE__
pthread_t t_Demod;
@ -32,6 +33,17 @@ public:
void run();
void terminate();
std::string getLabel();
void setLabel(std::string labelStr);
bool isTerminated();
void updateLabel(int freq);
private:
std::atomic<std::string *> label;
bool terminated;
bool demodTerminated;
bool audioTerminated;
};
class DemodulatorMgr {
@ -42,8 +54,21 @@ public:
DemodulatorInstance *newThread();
std::vector<DemodulatorInstance *> &getDemodulators();
std::vector<DemodulatorInstance *> *getDemodulatorsAt(int freq, int bandwidth);
void deleteThread(DemodulatorInstance *);
void terminateAll();
void setActiveDemodulator(DemodulatorInstance *demod, bool temporary = true);
DemodulatorInstance *getActiveDemodulator();
DemodulatorInstance *getLastActiveDemodulator();
private:
void garbageCollect();
std::vector<DemodulatorInstance *> demods;
std::vector<DemodulatorInstance *> demods_deleted;
DemodulatorInstance *activeDemodulator;
DemodulatorInstance *lastActiveDemodulator;
DemodulatorInstance *activeVisualDemodulator;
};

View File

@ -3,12 +3,12 @@
#include <vector>
#ifdef __APPLE__
#include <pthread.h>
#include <pthread.h>
#endif
DemodulatorThread::DemodulatorThread(DemodulatorThreadInputQueue* pQueue) :
DemodulatorThread::DemodulatorThread(DemodulatorThreadInputQueue* pQueue, DemodulatorThreadCommandQueue* threadQueueNotify) :
inputQueue(pQueue), visOutQueue(NULL), terminated(false), initialized(false), audio_resampler(NULL), resample_ratio(1), audio_resample_ratio(
1), resampler(NULL), commandQueue(NULL), fir_filter(NULL), audioInputQueue(NULL) {
1), resampler(NULL), commandQueue(NULL), fir_filter(NULL), audioInputQueue(NULL), threadQueueNotify(threadQueueNotify) {
float kf = 0.5; // modulation factor
fdem = freqdem_create(kf);
@ -249,13 +249,14 @@ void DemodulatorThread::threadMain() {
}
std::cout << "Demodulator thread done." << std::endl;
DemodulatorThreadCommand tCmd(DemodulatorThreadCommand::DEMOD_THREAD_CMD_DEMOD_TERMINATED);
tCmd.context = this;
threadQueueNotify->push(tCmd);
}
void DemodulatorThread::terminate() {
terminated = true;
DemodulatorThreadIQData inp; // push dummy to nudge queue
inputQueue->push(inp);
workerThread->terminate();
t_Worker->join();
}

View File

@ -11,116 +11,36 @@
#include "wx/thread.h"
#include "liquid/liquid.h"
#include "AudioThread.h"
#include "ThreadQueue.h"
#include "CubicSDRDefs.h"
#include "DemodulatorWorkerThread.h"
enum DemodulatorType {
DEMOD_TYPE_NULL,
DEMOD_TYPE_AM,
DEMOD_TYPE_FM,
DEMOD_TYPE_LSB,
DEMOD_TYPE_USB
};
class DemodulatorThreadCommand {
public:
enum DemodulatorThreadCommandEnum {
DEMOD_THREAD_CMD_NULL,
DEMOD_THREAD_CMD_SET_BANDWIDTH,
DEMOD_THREAD_CMD_SET_FREQUENCY
};
DemodulatorThreadCommand() :
cmd(DEMOD_THREAD_CMD_NULL), int_value(0) {
}
DemodulatorThreadCommand(DemodulatorThreadCommandEnum cmd) :
cmd(cmd), int_value(0) {
}
DemodulatorThreadCommandEnum cmd;
int int_value;
};
class DemodulatorThreadIQData {
public:
unsigned int frequency;
unsigned int bandwidth;
std::vector<signed char> data;
DemodulatorThreadIQData() :
frequency(0), bandwidth(0) {
}
DemodulatorThreadIQData(unsigned int bandwidth, unsigned int frequency,
std::vector<signed char> data) :
data(data), frequency(frequency), bandwidth(bandwidth) {
}
~DemodulatorThreadIQData() {
}
};
class DemodulatorThreadAudioData {
public:
unsigned int frequency;
unsigned int sampleRate;
unsigned char channels;
std::vector<float> data;
DemodulatorThreadAudioData() :
sampleRate(0), frequency(0), channels(0) {
}
DemodulatorThreadAudioData(unsigned int frequency, unsigned int sampleRate,
std::vector<float> data) :
data(data), sampleRate(sampleRate), frequency(frequency), channels(
1) {
}
~DemodulatorThreadAudioData() {
}
};
#include "DemodDefs.h"
class DemodulatorThreadParameters {
public:
unsigned int frequency;
unsigned int inputRate;
unsigned int bandwidth; // set equal to disable second stage re-sampling?
unsigned int audioSampleRate;
unsigned int frequency;
unsigned int inputRate;
unsigned int bandwidth; // set equal to disable second stage re-sampling?
unsigned int audioSampleRate;
DemodulatorType demodType;
DemodulatorType demodType;
DemodulatorThreadParameters() :
frequency(0), inputRate(SRATE), bandwidth(200000), audioSampleRate(
AUDIO_FREQUENCY), demodType(DEMOD_TYPE_FM) {
DemodulatorThreadParameters() :
frequency(0), inputRate(SRATE), bandwidth(200000), audioSampleRate(
AUDIO_FREQUENCY), demodType(DEMOD_TYPE_FM) {
}
}
~DemodulatorThreadParameters() {
~DemodulatorThreadParameters() {
}
}
};
typedef ThreadQueue<DemodulatorThreadIQData> DemodulatorThreadInputQueue;
typedef ThreadQueue<AudioThreadInput> DemodulatorThreadOutputQueue;
typedef ThreadQueue<DemodulatorThreadCommand> DemodulatorThreadCommandQueue;
class DemodulatorThread {
public:
DemodulatorThread(DemodulatorThreadInputQueue* pQueue);
DemodulatorThread(DemodulatorThreadInputQueue* pQueue, DemodulatorThreadCommandQueue* threadQueueNotify);
~DemodulatorThread();
#ifdef __APPLE__
@ -131,7 +51,6 @@ public:
void setVisualOutputQueue(DemodulatorThreadOutputQueue *tQueue) {
visOutQueue = tQueue;
visOutQueue->set_max_num_items(1);
}
void setCommandQueue(DemodulatorThreadCommandQueue *tQueue) {
@ -185,4 +104,5 @@ protected:
DemodulatorThreadWorkerCommandQueue *workerQueue;
DemodulatorThreadWorkerResultQueue *workerResults;
DemodulatorThreadCommandQueue* threadQueueNotify;
};

View File

@ -4,13 +4,38 @@
#include "CubicSDR.h"
SDRPostThread::SDRPostThread() :
iqDataInQueue(NULL), iqDataOutQueue(NULL), iqVisualQueue(NULL), terminated(false) {
dev = NULL;
sample_rate = SRATE;
iqDataInQueue(NULL), iqDataOutQueue(NULL), iqVisualQueue(NULL), terminated(false), dcFilter(NULL), sample_rate(SRATE) {
}
SDRPostThread::~SDRPostThread() {
rtlsdr_close(dev);
}
void SDRPostThread::bindDemodulator(DemodulatorInstance *demod) {
demodulators.push_back(demod);
}
void SDRPostThread::removeDemodulator(DemodulatorInstance *demod) {
if (!demod) {
return;
}
std::vector<DemodulatorInstance *>::iterator i;
i = std::find(demodulators.begin(), demodulators.end(), demod);
if (i != demodulators.end()) {
demodulators.erase(i);
}
}
void SDRPostThread::setIQDataInQueue(SDRThreadIQDataQueue* iqDataQueue) {
iqDataInQueue = iqDataQueue;
}
void SDRPostThread::setIQDataOutQueue(SDRThreadIQDataQueue* iqDataQueue) {
iqDataOutQueue = iqDataQueue;
}
void SDRPostThread::setIQVisualQueue(SDRThreadIQDataQueue *iqVisQueue) {
iqVisualQueue = iqVisQueue;
}
void SDRPostThread::threadMain() {
@ -50,10 +75,15 @@ void SDRPostThread::threadMain() {
}
if (iqVisualQueue != NULL) {
iqVisualQueue.load()->push(dataOut);
if (iqVisualQueue.load()->empty()) {
iqVisualQueue.load()->push(dataOut);
}
}
if (demodulators.size()) {
DemodulatorThreadIQData dummyDataOut;
dummyDataOut.frequency = data_in.frequency;
dummyDataOut.bandwidth = data_in.bandwidth;
DemodulatorThreadIQData demodDataOut;
demodDataOut.frequency = data_in.frequency;
demodDataOut.bandwidth = data_in.bandwidth;
@ -62,6 +92,14 @@ void SDRPostThread::threadMain() {
for (int i = 0, iMax = demodulators.size(); i < iMax; i++) {
DemodulatorInstance *demod = demodulators[i];
DemodulatorThreadInputQueue *demodQueue = demod->threadQueueDemod;
if (demod->getParams().frequency != data_in.frequency) {
if (abs(data_in.frequency - demod->getParams().frequency) > (int) ((float) ((float) SRATE / 2.0) * 1.15)) {
demodQueue->push(dummyDataOut);
continue;
}
}
demodQueue->push(demodDataOut);
}
}

View File

@ -1,37 +1,25 @@
#pragma once
#include "SDRThread.h"
#include <algorithm>
class SDRPostThread {
public:
rtlsdr_dev_t *dev;
SDRPostThread();
~SDRPostThread();
int enumerate_rtl();
void bindDemodulator(DemodulatorInstance *demod);
void removeDemodulator(DemodulatorInstance *demod);
void bindDemodulator(DemodulatorInstance *demod) {
demodulators.push_back(demod);
}
void setIQDataInQueue(SDRThreadIQDataQueue* iqDataQueue);
void setIQDataOutQueue(SDRThreadIQDataQueue* iqDataQueue);
void setIQVisualQueue(SDRThreadIQDataQueue *iqVisQueue);
void threadMain();
void setIQDataInQueue(SDRThreadIQDataQueue* iqDataQueue) {
iqDataInQueue = iqDataQueue;
}
void setIQDataOutQueue(SDRThreadIQDataQueue* iqDataQueue) {
iqDataOutQueue = iqDataQueue;
}
void setIQVisualQueue(SDRThreadIQDataQueue *iqVisQueue) {
iqVisualQueue = iqVisQueue;
iqVisualQueue.load()->set_max_num_items(1);
}
void terminate();
protected:
uint32_t sample_rate;
protected:
uint32_t sample_rate;
std::atomic<SDRThreadIQDataQueue*> iqDataOutQueue;
std::atomic<SDRThreadIQDataQueue*> iqDataInQueue;

449
src/util/GLFont.cpp Normal file
View File

@ -0,0 +1,449 @@
#include "GLFont.h"
#include <iostream>
#include <fstream>
#include <algorithm>
GLFontChar::GLFontChar() :
id(0), x(0), y(0), width(0), height(0), xadvance(0), xoffset(0), yoffset(0), index(0), aspect(1) {
}
GLFontChar::~GLFontChar() {
}
void GLFontChar::setId(int idval) {
id = idval;
}
int GLFontChar::getId() {
return id;
}
void GLFontChar::setXOffset(int xofs) {
xoffset = xofs;
}
int GLFontChar::getXOffset() {
return xoffset;
}
void GLFontChar::setYOffset(int yofs) {
yoffset = yofs;
}
int GLFontChar::getYOffset() {
return yoffset;
}
void GLFontChar::setX(int xpos) {
x = xpos;
}
int GLFontChar::getX() {
return x;
}
void GLFontChar::setY(int ypos) {
y = ypos;
}
int GLFontChar::getY() {
return y;
}
void GLFontChar::setWidth(int w) {
width = w;
if (width && height) {
aspect = (float) width / (float) height;
}
}
int GLFontChar::getWidth() {
return width;
}
void GLFontChar::setHeight(int h) {
height = h;
if (width && height) {
aspect = (float) width / (float) height;
}
}
int GLFontChar::getHeight() {
return height;
}
void GLFontChar::setXAdvance(int xadv) {
xadvance = xadv;
}
int GLFontChar::getXAdvance() {
return xadvance;
}
float GLFontChar::getAspect() {
return aspect;
}
void GLFontChar::setIndex(unsigned int idx) {
index = idx;
}
int GLFontChar::getIndex() {
return index;
}
GLFont::GLFont() :
numCharacters(0), imageHeight(0), imageWidth(0), base(0), lineHeight(0), texId(0), loaded(false) {
}
GLFont::~GLFont() {
}
std::string GLFont::nextParam(std::istringstream &str) {
std::string param_str;
str >> param_str;
if (param_str.find('"') != std::string::npos) {
std::string rest;
while (!str.eof() && (std::count(param_str.begin(), param_str.end(), '"') % 2)) {
str >> rest;
param_str.append(" " + rest);
}
}
return param_str;
}
std::string GLFont::getParamKey(std::string param_str) {
std::string keyName;
int eqpos = param_str.find("=");
if (eqpos != std::string::npos) {
keyName = param_str.substr(0, eqpos);
}
return keyName;
}
std::string GLFont::getParamValue(std::string param_str) {
std::string value;
int eqpos = param_str.find("=");
if (eqpos != std::string::npos) {
value = param_str.substr(eqpos + 1);
}
if (value[0] == '"' && value[value.length() - 1] == '"') {
value = value.substr(1, value.length() - 2);
}
return value;
}
void GLFont::loadFont(std::string fontFile) {
fontFileSource = fontFile;
std::ifstream input;
input.open(fontFileSource.c_str(), std::ios::in);
std::string op;
while (!input.eof()) {
input >> op;
if (op == "info") {
std::string info_param_str;
getline(input, info_param_str);
std::istringstream info_param(info_param_str);
while (!info_param.eof()) {
std::string param = nextParam(info_param);
std::string paramKey = getParamKey(param);
std::string paramValue = getParamValue(param);
if (paramKey == "face") {
fontName = paramValue;
}
// std::cout << "[" << paramKey << "] = '" << paramValue << "'" << std::endl;
}
} else if (op == "common") {
std::string common_param_str;
getline(input, common_param_str);
std::istringstream common_param(common_param_str);
while (!common_param.eof()) {
std::string param = nextParam(common_param);
std::string paramKey = getParamKey(param);
std::istringstream paramValue(getParamValue(param));
if (paramKey == "lineHeight") {
paramValue >> lineHeight;
} else if (paramKey == "base") {
paramValue >> base;
} else if (paramKey == "scaleW") {
paramValue >> imageWidth;
} else if (paramKey == "scaleH") {
paramValue >> imageHeight;
}
// std::cout << "[" << paramKey << "] = '" << getParamValue(param) << "'" << std::endl;
}
} else if (op == "page") {
std::string page_param_str;
getline(input, page_param_str);
std::istringstream page_param(page_param_str);
while (!page_param.eof()) {
std::string param = nextParam(page_param);
std::string paramKey = getParamKey(param);
std::string paramValue = getParamValue(param);
if (paramKey == "file") {
imageFile = paramValue;
}
// std::cout << "[" << paramKey << "] = '" << paramValue << "'" << std::endl;
}
} else if (op == "char") {
std::string char_param_str;
getline(input, char_param_str);
std::istringstream char_param(char_param_str);
GLFontChar *newChar = new GLFontChar;
while (!char_param.eof()) {
std::string param = nextParam(char_param);
std::string paramKey = getParamKey(param);
std::istringstream paramValue(getParamValue(param));
int val;
if (paramKey == "id") {
paramValue >> val;
newChar->setId(val);
} else if (paramKey == "x") {
paramValue >> val;
newChar->setX(val);
} else if (paramKey == "y") {
paramValue >> val;
newChar->setY(val);
} else if (paramKey == "width") {
paramValue >> val;
newChar->setWidth(val);
} else if (paramKey == "height") {
paramValue >> val;
newChar->setHeight(val);
} else if (paramKey == "xoffset") {
paramValue >> val;
newChar->setXOffset(val);
} else if (paramKey == "yoffset") {
paramValue >> val;
newChar->setYOffset(val);
} else if (paramKey == "xadvance") {
paramValue >> val;
newChar->setXAdvance(val);
}
// std::cout << "[" << paramKey << "] = '" << getParamValue(param) << "'" << std::endl;
}
characters[newChar->getId()] = newChar;
} else {
std::string dummy;
getline(input, dummy);
}
}
if (imageFile != "" && imageWidth && imageHeight && characters.size()) {
// Load file and decode image.
std::vector<unsigned char> image;
unsigned int imgWidth = imageWidth, imgHeight = imageHeight;
unsigned error = lodepng::decode(image, imgWidth, imgHeight, imageFile);
glGenTextures(1, &texId);
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, texId);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexImage2D(GL_TEXTURE_2D, 0, 4, imageWidth, imageHeight, 0, GL_RGBA, GL_UNSIGNED_BYTE, &image[0]);
glDisable(GL_TEXTURE_2D);
std::map<int, GLFontChar *>::iterator char_i;
gl_vertices.resize(characters.size() * 8); // one quad per char
gl_uv.resize(characters.size() * 8);
unsigned int ofs = 0;
for (char_i = characters.begin(); char_i != characters.end(); char_i++) {
int charId = (*char_i).first;
GLFontChar *fchar = (*char_i).second;
float faspect = fchar->getAspect();
float uv_xpos = (float) fchar->getX() / (float) imageWidth;
float uv_ypos = ((float) fchar->getY() / (float) imageHeight);
float uv_xofs = (float) fchar->getWidth() / (float) imageWidth;
float uv_yofs = ((float) fchar->getHeight() / (float) imageHeight);
gl_vertices[ofs] = 0;
gl_vertices[ofs + 1] = 0;
gl_uv[ofs] = uv_xpos;
gl_uv[ofs + 1] = uv_ypos + uv_yofs;
gl_vertices[ofs + 2] = faspect;
gl_vertices[ofs + 3] = 0;
gl_uv[ofs + 2] = uv_xpos + uv_xofs;
gl_uv[ofs + 3] = uv_ypos + uv_yofs;
gl_vertices[ofs + 4] = faspect;
gl_vertices[ofs + 5] = 1;
gl_uv[ofs + 4] = uv_xpos + uv_xofs;
gl_uv[ofs + 5] = uv_ypos;
gl_vertices[ofs + 6] = 0;
gl_vertices[ofs + 7] = 1;
gl_uv[ofs + 6] = uv_xpos;
gl_uv[ofs + 7] = uv_ypos;
fchar->setIndex(ofs);
ofs += 8;
}
std::cout << "Loaded font '" << fontName << "' from '" << fontFileSource << "', parsed " << characters.size() << " characters." << std::endl;
loaded = true;
} else {
std::cout << "Error loading font file " << fontFileSource << std::endl;
}
input.close();
}
bool GLFont::isLoaded() {
return loaded;
}
float GLFont::getStringWidth(std::string str, float size, float viewAspect) {
float scalex = size / viewAspect;
float width = 0;
for (int i = 0, iMax = str.length(); i < iMax; i++) {
int charId = str.at(i);
if (characters.find(charId) == characters.end()) {
continue;
}
GLFontChar *fchar = characters[charId];
float ofsx = (float) fchar->getXOffset() / (float) imageWidth;
float advx = (float) fchar->getXAdvance() / (float) imageWidth;
if (charId == 32) {
advx = characters['_']->getAspect();
}
width += fchar->getAspect() + advx + ofsx;
}
width *= scalex;
return width;
}
void GLFont::drawString(std::string str, float xpos, float ypos, int pxHeight, Align hAlign, Align vAlign) {
GLint vp[4];
pxHeight *= 2;
glGetIntegerv( GL_VIEWPORT, vp);
float size = (float) pxHeight / (float) vp[3];
float viewAspect = (float) vp[2] / (float) vp[3];
float msgWidth = getStringWidth(str, size, viewAspect);
glPushMatrix();
glTranslatef(xpos, ypos, 0.0f);
switch (hAlign) {
case GLFONT_ALIGN_TOP:
glTranslatef(0.0, -size, 0.0);
break;
case GLFONT_ALIGN_CENTER:
glTranslatef(0.0, -size/2.0, 0.0);
break;
default:
break;
}
switch (vAlign) {
case GLFONT_ALIGN_RIGHT:
glTranslatef(-msgWidth, 0.0, 0.0);
break;
case GLFONT_ALIGN_CENTER:
glTranslatef(-msgWidth / 2.0, 0.0, 0.0);
break;
default:
break;
}
glPushMatrix();
glScalef(size / viewAspect, size, 1.0f);
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, texId);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glVertexPointer(2, GL_FLOAT, 0, &gl_vertices[0]);
glTexCoordPointer(2, GL_FLOAT, 0, &gl_uv[0]);
for (int i = 0, iMax = str.length(); i < iMax; i++) {
int charId = str.at(i);
if (characters.find(charId) == characters.end()) {
continue;
}
GLFontChar *fchar = characters[charId];
float ofsx = (float) fchar->getXOffset() / (float) imageWidth;
float advx = (float) fchar->getXAdvance() / (float) imageWidth;
if (charId == 32) {
advx = characters['_']->getAspect();
}
glTranslatef(ofsx, 0.0, 0.0);
glDrawArrays(GL_QUADS, fchar->getIndex() / 2, 4);
glTranslatef(fchar->getAspect() + advx, 0.0, 0.0);
}
glDisableClientState(GL_VERTEX_ARRAY);
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
glPopMatrix();
glPopMatrix();
glDisable(GL_BLEND);
}

91
src/util/GLFont.h Normal file
View File

@ -0,0 +1,91 @@
#pragma once
#include <map>
#include <string>
#include <sstream>
#include "lodepng.h"
#include "wx/glcanvas.h"
class GLFontChar {
public:
GLFontChar();
~GLFontChar();
void setId(int idval);
int getId();
void setXOffset(int xofs);
int getXOffset();
void setYOffset(int yofs);
int getYOffset();
void setX(int xpos);
int getX();
void setY(int ypos);
int getY();
void setWidth(int w);
int getWidth();
void setHeight(int h);
int getHeight();
void setXAdvance(int xadv);
int getXAdvance();
float getAspect();
void setIndex(unsigned int idx);
int getIndex();
private:
int id;
int x, y, width, height;
int xoffset, yoffset;
int xadvance;
float aspect;
int index;
};
class GLFont {
public:
enum Align {
GLFONT_ALIGN_LEFT,
GLFONT_ALIGN_RIGHT,
GLFONT_ALIGN_CENTER,
GLFONT_ALIGN_TOP,
GLFONT_ALIGN_BOTTOM
};
GLFont();
~GLFont();
void loadFont(std::string fontFile);
bool isLoaded();
float getStringWidth(std::string str, float size, float viewAspect);
void drawString(std::string str, float xpos, float ypos, int pxHeight, Align hAlign = GLFONT_ALIGN_LEFT, Align vAlign = GLFONT_ALIGN_TOP);
private:
std::string nextParam(std::istringstream &str);
std::string getParamKey(std::string param_str);
std::string getParamValue(std::string param_str);
int numCharacters;
int lineHeight;
int base;
int imageWidth, imageHeight;
bool loaded;
std::map<int, GLFontChar *> characters;
std::vector<float> gl_vertices;
std::vector<float> gl_uv;
std::string fontName;
std::string imageFile;
std::string fontFileSource;
GLuint texId;
};

View File

@ -15,6 +15,8 @@
#include "AppFrame.h"
#include <algorithm>
GLFont PrimaryGLContext::fonts[GLFONT_MAX];
wxString PrimaryGLContext::glGetwxString(GLenum name) {
const GLubyte *v = glGetString(name);
if (v == 0) {
@ -56,3 +58,189 @@ PrimaryGLContext::PrimaryGLContext(wxGLCanvas *canvas, wxGLContext *sharedContex
CheckGLError();
}
GLFont &PrimaryGLContext::getFont(GLFontSize esize) {
if (!fonts[esize].isLoaded()) {
std::string fontName;
switch (esize) {
case GLFONT_SIZE12:
fontName = "vera_sans_mono12.fnt";
break;
case GLFONT_SIZE16:
fontName = "vera_sans_mono16.fnt";
break;
case GLFONT_SIZE18:
fontName = "vera_sans_mono18.fnt";
break;
case GLFONT_SIZE24:
fontName = "vera_sans_mono24.fnt";
break;
case GLFONT_SIZE32:
fontName = "vera_sans_mono32.fnt";
break;
case GLFONT_SIZE48:
fontName = "vera_sans_mono48.fnt";
break;
}
fonts[esize].loadFont(fontName);
}
return fonts[esize];
}
void PrimaryGLContext::DrawDemodInfo(DemodulatorInstance *demod, float r, float g, float b) {
if (!demod) {
return;
}
GLint vp[4];
glGetIntegerv( GL_VIEWPORT, vp);
float viewHeight = (float) vp[3];
float viewWidth = (float) vp[2];
float uxPos = (float) (demod->getParams().frequency - (wxGetApp().getFrequency() - SRATE / 2)) / (float) SRATE;
uxPos = (uxPos - 0.5) * 2.0;
glDisable(GL_TEXTURE_2D);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_DST_COLOR);
glColor4f(r, g, b, 0.6);
float ofs = ((float) demod->getParams().bandwidth) / (float) SRATE;
glBlendFunc(GL_SRC_ALPHA, GL_DST_COLOR);
glColor4f(r, g, b, 0.2);
glBegin(GL_QUADS);
glVertex3f(uxPos - ofs, 1.0, 0.0);
glVertex3f(uxPos - ofs, -1.0, 0.0);
glVertex3f(uxPos + ofs, -1.0, 0.0);
glVertex3f(uxPos + ofs, 1.0, 0.0);
glEnd();
float labelHeight = 20.0 / viewHeight;
float hPos = -1.0 + labelHeight;
if (ofs * 2.0 < 16.0 / viewWidth) {
ofs = 16.0 / viewWidth;
glColor4f(r, g, b, 0.2);
glBegin(GL_QUADS);
glVertex3f(uxPos - ofs, hPos + labelHeight, 0.0);
glVertex3f(uxPos - ofs, -1.0, 0.0);
glVertex3f(uxPos + ofs, -1.0, 0.0);
glVertex3f(uxPos + ofs, hPos + labelHeight, 0.0);
glEnd();
}
glColor4f(1.0, 1.0, 1.0, 0.8);
getFont(PrimaryGLContext::GLFONT_SIZE16).drawString(demod->getLabel(), uxPos, hPos, 16, GLFont::GLFONT_ALIGN_CENTER, GLFont::GLFONT_ALIGN_CENTER);
glDisable(GL_BLEND);
}
void PrimaryGLContext::DrawDemod(DemodulatorInstance *demod, float r, float g, float b) {
if (!demod) {
return;
}
float uxPos = (float) (demod->getParams().frequency - (wxGetApp().getFrequency() - SRATE / 2)) / (float) SRATE;
glDisable(GL_DEPTH_TEST);
glDisable(GL_TEXTURE_2D);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_DST_COLOR);
glColor4f(r, g, b, 0.6);
glBegin(GL_LINES);
glVertex3f((uxPos - 0.5) * 2.0, 1.0, 0.0);
glVertex3f((uxPos - 0.5) * 2.0, -1.0, 0.0);
float ofs = ((float) demod->getParams().bandwidth) / (float) SRATE;
glVertex3f((uxPos - 0.5) * 2.0 - ofs, 1.0, 0.0);
glVertex3f((uxPos - 0.5) * 2.0 - ofs, -1.0, 0.0);
glVertex3f((uxPos - 0.5) * 2.0 + ofs, 1.0, 0.0);
glVertex3f((uxPos - 0.5) * 2.0 + ofs, -1.0, 0.0);
glEnd();
glBlendFunc(GL_SRC_ALPHA, GL_DST_COLOR);
glColor4f(r, g, b, 0.2);
glBegin(GL_QUADS);
glVertex3f((uxPos - 0.5) * 2.0 - ofs, 1.0, 0.0);
glVertex3f((uxPos - 0.5) * 2.0 - ofs, -1.0, 0.0);
glVertex3f((uxPos - 0.5) * 2.0 + ofs, -1.0, 0.0);
glVertex3f((uxPos - 0.5) * 2.0 + ofs, 1.0, 0.0);
glEnd();
glDisable(GL_BLEND);
glEnable(GL_DEPTH_TEST);
}
void PrimaryGLContext::DrawFreqSelector(float uxPos, float r, float g, float b, float w) {
DemodulatorInstance *demod = wxGetApp().getDemodMgr().getLastActiveDemodulator();
int bw = 0;
if (!demod) {
bw = defaultDemodParams.bandwidth;
} else {
bw = demod->getParams().bandwidth;
}
glDisable(GL_DEPTH_TEST);
glDisable(GL_TEXTURE_2D);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_DST_COLOR);
glColor4f(r, g, b, 0.6);
glBegin(GL_LINES);
glVertex3f((uxPos - 0.5) * 2.0, 1.0, 0.0);
glVertex3f((uxPos - 0.5) * 2.0, -1.0, 0.0);
float ofs;
if (w) {
ofs = w;
} else {
ofs = ((float) bw) / (float) SRATE;
}
glVertex3f((uxPos - 0.5) * 2.0 - ofs, 1.0, 0.0);
glVertex3f((uxPos - 0.5) * 2.0 - ofs, -1.0, 0.0);
glVertex3f((uxPos - 0.5) * 2.0 + ofs, 1.0, 0.0);
glVertex3f((uxPos - 0.5) * 2.0 + ofs, -1.0, 0.0);
glEnd();
glDisable(GL_BLEND);
glEnable(GL_DEPTH_TEST);
}
void PrimaryGLContext::BeginDraw() {
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
void PrimaryGLContext::EndDraw() {
glFlush();
CheckGLError();
}

View File

@ -7,13 +7,27 @@
#include <queue>
#include "CubicSDRDefs.h"
#include "GLFont.h"
#include "DemodulatorMgr.h"
class PrimaryGLContext: public wxGLContext {
public:
enum GLFontSize { GLFONT_SIZE12, GLFONT_SIZE16, GLFONT_SIZE18, GLFONT_SIZE24, GLFONT_SIZE32, GLFONT_SIZE48, GLFONT_MAX };
PrimaryGLContext(wxGLCanvas *canvas, wxGLContext *sharedContext);
static wxString glGetwxString(GLenum name);
static void CheckGLError();
void BeginDraw();
void EndDraw();
void DrawFreqSelector(float uxPos, float r = 1, float g = 1, float b = 1, float w=0);
void DrawDemod(DemodulatorInstance *demod, float r = 1, float g = 1, float b = 1);
void DrawDemodInfo(DemodulatorInstance *demod, float r = 1, float g = 1, float b = 1);
static GLFont &getFont(GLFontSize esize);
private:
static GLFont fonts[GLFONT_MAX];
DemodulatorThreadParameters defaultDemodParams;
};

View File

@ -16,7 +16,6 @@
#include <algorithm>
wxBEGIN_EVENT_TABLE(ScopeCanvas, wxGLCanvas) EVT_PAINT(ScopeCanvas::OnPaint)
EVT_KEY_DOWN(ScopeCanvas::OnKeyDown)
EVT_IDLE(ScopeCanvas::OnIdle)
wxEND_EVENT_TABLE()
@ -48,35 +47,6 @@ void ScopeCanvas::OnPaint(wxPaintEvent& WXUNUSED(event)) {
SwapBuffers();
}
void ScopeCanvas::OnKeyDown(wxKeyEvent& event) {
float angle = 5.0;
unsigned int freq;
switch (event.GetKeyCode()) {
case WXK_RIGHT:
freq = wxGetApp().getFrequency();
freq += SRATE/2;
wxGetApp().setFrequency(freq);
((wxFrame*) parent)->GetStatusBar()->SetStatusText(wxString::Format(wxT("Set center frequency: %i"), freq));
break;
case WXK_LEFT:
freq = wxGetApp().getFrequency();
freq -= SRATE/2;
wxGetApp().setFrequency(freq);
((wxFrame*) parent)->GetStatusBar()->SetStatusText(wxString::Format(wxT("Set center frequency: %i"), freq));
break;
case WXK_DOWN:
break;
case WXK_UP:
break;
case WXK_SPACE:
break;
default:
event.Skip();
return;
}
}
void ScopeCanvas::OnIdle(wxIdleEvent &event) {
// timer.update();
// frameTimer += timer.lastUpdateSeconds();

View File

@ -21,7 +21,6 @@ public:
void setWaveformPoints(std::vector<float> &waveform_points_in);
private:
void OnPaint(wxPaintEvent& event);
void OnKeyDown(wxKeyEvent& event);
void OnIdle(wxIdleEvent &event);

View File

@ -17,12 +17,10 @@
#include <wx/numformatter.h>
wxBEGIN_EVENT_TABLE(SpectrumCanvas, wxGLCanvas) EVT_PAINT(SpectrumCanvas::OnPaint)
EVT_KEY_DOWN(SpectrumCanvas::OnKeyDown)
EVT_IDLE(SpectrumCanvas::OnIdle)
EVT_MOTION(SpectrumCanvas::mouseMoved)
EVT_LEFT_DOWN(SpectrumCanvas::mouseDown)
EVT_LEFT_UP(SpectrumCanvas::mouseReleased)
//EVT_RIGHT_DOWN(SpectrumCanvas::rightClick)
EVT_LEAVE_WINDOW(SpectrumCanvas::mouseLeftWindow)
EVT_MOUSEWHEEL(SpectrumCanvas::mouseWheelMoved)
wxEND_EVENT_TABLE()
@ -61,38 +59,18 @@ void SpectrumCanvas::OnPaint(wxPaintEvent& WXUNUSED(event)) {
glContext->SetCurrent(*this);
glViewport(0, 0, ClientSize.x, ClientSize.y);
glContext->BeginDraw();
glContext->Draw(spectrum_points);
SwapBuffers();
}
std::vector<DemodulatorInstance *> &demods = wxGetApp().getDemodMgr().getDemodulators();
void SpectrumCanvas::OnKeyDown(wxKeyEvent& event) {
float angle = 5.0;
unsigned int freq;
switch (event.GetKeyCode()) {
case WXK_RIGHT:
freq = wxGetApp().getFrequency();
freq += SRATE/2;
wxGetApp().setFrequency(freq);
((wxFrame*) parent)->GetStatusBar()->SetStatusText(wxString::Format(wxT("Set center frequency: %i"), freq));
break;
case WXK_LEFT:
freq = wxGetApp().getFrequency();
freq -= SRATE/2;
wxGetApp().setFrequency(freq);
((wxFrame*) parent)->GetStatusBar()->SetStatusText(wxString::Format(wxT("Set center frequency: %i"), freq));
break;
case WXK_DOWN:
break;
case WXK_UP:
break;
case WXK_SPACE:
break;
default:
event.Skip();
return;
for (int i = 0, iMax = demods.size(); i < iMax; i++) {
glContext->DrawDemodInfo(demods[i]);
}
glContext->EndDraw();
SwapBuffers();
}
void SpectrumCanvas::setData(std::vector<signed char> *data) {
@ -119,12 +97,12 @@ void SpectrumCanvas::setData(std::vector<signed char> *data) {
int n;
for (int i = 0, iMax = FFT_SIZE / 2; i < iMax; i++) {
n = (i == 0)?1:i;
n = (i == 0) ? 1 : i;
double a = out[n][0];
double b = out[n][1];
double c = sqrt(a * a + b * b);
n = (i == FFT_SIZE/2)?(FFT_SIZE/2+1):i;
n = (i == FFT_SIZE / 2) ? (FFT_SIZE / 2 + 1) : i;
double x = out[FFT_SIZE / 2 + n][0];
double y = out[FFT_SIZE / 2 + n][1];
double z = sqrt(x * x + y * y);

View File

@ -20,7 +20,6 @@ public:
void setData(std::vector<signed char> *data);
private:
void OnPaint(wxPaintEvent& event);
void OnKeyDown(wxKeyEvent& event);
void OnIdle(wxIdleEvent &event);

View File

@ -1,6 +1,9 @@
#include "SpectrumContext.h"
#include "SpectrumCanvas.h"
#include "CubicSDR.h"
#include <sstream>
#include <iostream>
SpectrumContext::SpectrumContext(SpectrumCanvas *canvas, wxGLContext *sharedContext) :
PrimaryGLContext(canvas, sharedContext) {
@ -13,24 +16,71 @@ SpectrumContext::SpectrumContext(SpectrumCanvas *canvas, wxGLContext *sharedCont
}
void SpectrumContext::Draw(std::vector<float> &points) {
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glDisable(GL_TEXTURE_2D);
glColor3f(1.0, 1.0, 1.0);
if (points.size()) {
glPushMatrix();
glTranslatef(-1.0f, -0.9f, 0.0f);
glScalef(2.0f, 1.8f, 1.0f);
glTranslatef(-1.0f, -0.75f, 0.0f);
glScalef(2.0f, 1.5f, 1.0f);
glEnableClientState(GL_VERTEX_ARRAY);
glVertexPointer(2, GL_FLOAT, 0, &points[0]);
glDrawArrays(GL_LINE_STRIP, 0, points.size() / 2);
glDisableClientState(GL_VERTEX_ARRAY);
glPopMatrix();
}
GLint vp[4];
glGetIntegerv( GL_VIEWPORT, vp);
float viewHeight = (float) vp[3];
float leftFreq = (float) wxGetApp().getFrequency() - ((float) SRATE / 2.0);
float rightFreq = leftFreq + (float) SRATE;
float firstMhz = floor(leftFreq / 1000000.0) * 1000000.0;
float mhzStart = ((firstMhz - leftFreq) / (rightFreq - leftFreq)) * 2.0;
float mhzStep = (100000.0 / (rightFreq - leftFreq)) * 2.0;
double currentMhz = trunc(floor(firstMhz / 1000000.0));
std::stringstream label;
label.precision(2);
float hPos = 1.0 - (16.0 / viewHeight);
float lMhzPos = 1.0 - (5.0 / viewHeight);
for (float m = -1.0 + mhzStart, mMax = 1.0 + fabs(mhzStart); m <= mMax; m += mhzStep) {
label << std::fixed << currentMhz;
double fractpart, intpart;
fractpart = modf(currentMhz, &intpart);
if (fractpart < 0.001) {
glLineWidth(4.0);
glColor3f(1.0, 1.0, 1.0);
} else {
glLineWidth(1.0);
glColor3f(0.55, 0.55, 0.55);
}
glDisable(GL_TEXTURE_2D);
glBegin(GL_LINES);
glVertex2f(m, lMhzPos);
glVertex2f(m, 1);
glEnd();
getFont(PrimaryGLContext::GLFONT_SIZE12).drawString(label.str(), m, hPos, 12, GLFont::GLFONT_ALIGN_CENTER, GLFont::GLFONT_ALIGN_CENTER);
label.str(std::string());
currentMhz += 0.1f;
}
glLineWidth(1.0);
// getFont(PrimaryGLContext::GLFONT_SIZE16).drawString("Welcome to CubicSDR -- This is a test string. 01234567890!@#$%^&*()_[]",0.0,0.0,16,GLFont::GLFONT_ALIGN_CENTER,GLFont::GLFONT_ALIGN_CENTER);
CheckGLError();
}

View File

@ -19,6 +19,7 @@
wxBEGIN_EVENT_TABLE(WaterfallCanvas, wxGLCanvas) EVT_PAINT(WaterfallCanvas::OnPaint)
EVT_KEY_DOWN(WaterfallCanvas::OnKeyDown)
EVT_KEY_UP(WaterfallCanvas::OnKeyUp)
EVT_IDLE(WaterfallCanvas::OnIdle)
EVT_MOTION(WaterfallCanvas::mouseMoved)
EVT_LEFT_DOWN(WaterfallCanvas::mouseDown)
@ -29,8 +30,8 @@ wxEND_EVENT_TABLE()
WaterfallCanvas::WaterfallCanvas(wxWindow *parent, int *attribList) :
wxGLCanvas(parent, wxID_ANY, attribList, wxDefaultPosition, wxDefaultSize,
wxFULL_REPAINT_ON_RESIZE), parent(parent), frameTimer(0), activeDemodulatorBandwidth(0), activeDemodulator(NULL), dragState(
WF_DRAG_NONE), nextDragState(WF_DRAG_NONE) {
wxFULL_REPAINT_ON_RESIZE), parent(parent), frameTimer(0), dragState(WF_DRAG_NONE), nextDragState(WF_DRAG_NONE), shiftDown(
false), altDown(false), ctrlDown(false), activeDemodulatorBandwidth(0), activeDemodulatorFrequency(0) {
int in_block_size = BUF_SIZE / 2;
int out_block_size = FFT_SIZE;
@ -73,17 +74,62 @@ void WaterfallCanvas::OnPaint(wxPaintEvent& WXUNUSED(event)) {
std::vector<DemodulatorInstance *> &demods = wxGetApp().getDemodMgr().getDemodulators();
if (mTracker.mouseInView()) {
DemodulatorInstance *activeDemodulator = wxGetApp().getDemodMgr().getActiveDemodulator();
DemodulatorInstance *lastActiveDemodulator = wxGetApp().getDemodMgr().getLastActiveDemodulator();
if (activeDemodulator == NULL) {
glContext->DrawFreqSelector(mTracker.getMouseX(), 0, 1, 0);
if (mTracker.mouseInView()) {
if (nextDragState == WF_DRAG_RANGE) {
if (mTracker.mouseDown()) {
float width = mTracker.getOriginDeltaMouseX();
float centerPos = mTracker.getOriginMouseX() + width / 2.0;
if (shiftDown) {
glContext->DrawDemod(lastActiveDemodulator);
glContext->DrawFreqSelector(centerPos, 0, 1, 0, width ? width : (1.0 / (float) ClientSize.x));
} else {
glContext->DrawDemod(lastActiveDemodulator, 1, 0, 0);
glContext->DrawFreqSelector(centerPos, 1, 1, 0, width ? width : (1.0 / (float) ClientSize.x));
}
} else {
if (shiftDown) {
glContext->DrawDemod(lastActiveDemodulator);
glContext->DrawFreqSelector(mTracker.getMouseX(), 0, 1, 0, 1.0 / (float) ClientSize.x);
} else {
glContext->DrawDemod(lastActiveDemodulator, 1, 0, 0);
glContext->DrawFreqSelector(mTracker.getMouseX(), 1, 1, 0, 1.0 / (float) ClientSize.x);
}
}
} else {
glContext->DrawDemod(activeDemodulator, 1, 1, 0);
if (activeDemodulator == NULL) {
if (lastActiveDemodulator) {
if (shiftDown) {
glContext->DrawDemod(lastActiveDemodulator);
glContext->DrawFreqSelector(mTracker.getMouseX(), 0, 1, 0);
} else {
glContext->DrawDemod(lastActiveDemodulator, 1, 0, 0);
glContext->DrawFreqSelector(mTracker.getMouseX(), 1, 1, 0);
}
} else {
glContext->DrawFreqSelector(mTracker.getMouseX(), 1, 1, 0);
}
} else {
if (lastActiveDemodulator) {
glContext->DrawDemod(lastActiveDemodulator);
}
glContext->DrawDemod(activeDemodulator, 1, 1, 0);
}
}
} else {
if (activeDemodulator) {
glContext->DrawDemod(activeDemodulator);
}
if (lastActiveDemodulator) {
glContext->DrawDemod(lastActiveDemodulator);
}
}
for (int i = 0, iMax = demods.size(); i < iMax; i++) {
if (activeDemodulator == demods[i]) {
if (activeDemodulator == demods[i] || lastActiveDemodulator == demods[i]) {
continue;
}
glContext->DrawDemod(demods[i]);
@ -94,9 +140,23 @@ void WaterfallCanvas::OnPaint(wxPaintEvent& WXUNUSED(event)) {
SwapBuffers();
}
void WaterfallCanvas::OnKeyUp(wxKeyEvent& event) {
shiftDown = event.ShiftDown();
altDown = event.AltDown();
ctrlDown = event.ControlDown();
// switch (event.GetKeyCode()) {
// }
}
void WaterfallCanvas::OnKeyDown(wxKeyEvent& event) {
float angle = 5.0;
shiftDown = event.ShiftDown();
altDown = event.AltDown();
ctrlDown = event.ControlDown();
DemodulatorInstance *activeDemod = wxGetApp().getDemodMgr().getActiveDemodulator();
unsigned int freq;
switch (event.GetKeyCode()) {
case WXK_RIGHT:
@ -111,12 +171,15 @@ void WaterfallCanvas::OnKeyDown(wxKeyEvent& event) {
wxGetApp().setFrequency(freq);
((wxFrame*) parent)->GetStatusBar()->SetStatusText(wxString::Format(wxT("Set center frequency: %i"), freq));
break;
case WXK_DOWN:
break;
case WXK_UP:
break;
case WXK_SPACE:
case 'D':
case WXK_DELETE:
if (!activeDemod) {
break;
}
wxGetApp().getDemodMgr().deleteThread(activeDemod);
wxGetApp().removeDemodulator(activeDemod);
break;
default:
event.Skip();
return;
@ -205,12 +268,19 @@ void WaterfallCanvas::OnIdle(wxIdleEvent &event) {
void WaterfallCanvas::mouseMoved(wxMouseEvent& event) {
mTracker.OnMouseMoved(event);
DemodulatorInstance *demod = wxGetApp().getDemodTest();
shiftDown = event.ShiftDown();
altDown = event.AltDown();
ctrlDown = event.ControlDown();
DemodulatorInstance *demod = wxGetApp().getDemodMgr().getActiveDemodulator();
if (mTracker.mouseDown()) {
if (demod == NULL) {
return;
}
if (dragState == WF_DRAG_BANDWIDTH_LEFT || dragState == WF_DRAG_BANDWIDTH_RIGHT) {
int bwDiff = (int) (mTracker.getDeltaMouseX() * (float)SRATE) * 2;
int bwDiff = (int) (mTracker.getDeltaMouseX() * (float) SRATE) * 2;
if (dragState == WF_DRAG_BANDWIDTH_LEFT) {
bwDiff = -bwDiff;
@ -235,7 +305,7 @@ void WaterfallCanvas::mouseMoved(wxMouseEvent& event) {
}
if (dragState == WF_DRAG_FREQUENCY) {
int bwDiff = (int) (mTracker.getDeltaMouseX() * (float)SRATE);
int bwDiff = (int) (mTracker.getDeltaMouseX() * (float) SRATE);
if (!activeDemodulatorFrequency) {
activeDemodulatorFrequency = demod->getParams().frequency;
@ -247,32 +317,56 @@ void WaterfallCanvas::mouseMoved(wxMouseEvent& event) {
command.int_value = activeDemodulatorFrequency;
demod->getCommandQueue()->push(command);
demod->updateLabel(activeDemodulatorFrequency);
}
} else {
int freqPos = GetFrequencyAt(mTracker.getMouseX());
activeDemodulator = NULL;
std::vector<DemodulatorInstance *> *demodsHover = wxGetApp().getDemodMgr().getDemodulatorsAt(freqPos, 15000);
if (demodsHover->size()) {
wxGetApp().getDemodMgr().setActiveDemodulator(NULL);
if (altDown) {
nextDragState = WF_DRAG_RANGE;
mTracker.setVertDragLock(true);
mTracker.setHorizDragLock(false);
} else if (demodsHover->size()) {
int hovered = -1;
int near_dist = SRATE;
DemodulatorInstance *activeDemodulator = NULL;
for (int i = 0, iMax = demodsHover->size(); i < iMax; i++) {
DemodulatorInstance *demod = (*demodsHover)[i];
int freqDiff = (int) demod->getParams().frequency - freqPos;
int halfBw = (demod->getParams().bandwidth / 2);
int dist = abs((int)demod->getParams().frequency - freqPos);
int dist = abs(freqDiff);
if (dist < near_dist) {
activeDemodulator = demod;
near_dist = dist;
}
if (dist <= halfBw && dist >= (int) ((float) halfBw / (float) 1.5)) {
int edge_dist = abs(halfBw - dist);
if (edge_dist < near_dist) {
activeDemodulator = demod;
near_dist = edge_dist;
}
}
}
int freqDiff = ((int)activeDemodulator->getParams().frequency - freqPos);
if (activeDemodulator == NULL) {
return;
}
if (near_dist > (activeDemodulator->getParams().bandwidth / 3)) {
wxGetApp().getDemodMgr().setActiveDemodulator(activeDemodulator);
int freqDiff = ((int) activeDemodulator->getParams().frequency - freqPos);
if (abs(freqDiff) > (activeDemodulator->getParams().bandwidth / 3)) {
SetCursor(wxCURSOR_SIZEWE);
if (freqDiff > 0) {
@ -281,7 +375,6 @@ void WaterfallCanvas::mouseMoved(wxMouseEvent& event) {
nextDragState = WF_DRAG_BANDWIDTH_RIGHT;
}
mTracker.setVertDragLock(true);
mTracker.setHorizDragLock(false);
} else {
@ -302,53 +395,145 @@ void WaterfallCanvas::mouseMoved(wxMouseEvent& event) {
void WaterfallCanvas::mouseDown(wxMouseEvent& event) {
mTracker.OnMouseDown(event);
dragState = nextDragState;
shiftDown = event.ShiftDown();
altDown = event.AltDown();
ctrlDown = event.ControlDown();
if (dragState && dragState != WF_DRAG_RANGE) {
wxGetApp().getDemodMgr().setActiveDemodulator(wxGetApp().getDemodMgr().getActiveDemodulator(), false);
}
activeDemodulatorBandwidth = 0;
activeDemodulatorFrequency = 0;
}
void WaterfallCanvas::mouseWheelMoved(wxMouseEvent& event) {
DemodulatorInstance *demod = wxGetApp().getDemodTest();
mTracker.OnMouseWheelMoved(event);
}
void WaterfallCanvas::mouseReleased(wxMouseEvent& event) {
mTracker.OnMouseReleased(event);
if (mTracker.getOriginDeltaMouseX() == 0 && mTracker.getOriginDeltaMouseY() == 0 && dragState == WF_DRAG_NONE) {
shiftDown = event.ShiftDown();
altDown = event.AltDown();
ctrlDown = event.ControlDown();
mTracker.setVertDragLock(false);
mTracker.setHorizDragLock(false);
DemodulatorInstance *demod;
if (mTracker.getOriginDeltaMouseX() == 0 && mTracker.getOriginDeltaMouseY() == 0) {
float pos = mTracker.getMouseX();
int center_freq = wxGetApp().getFrequency();
int freq = center_freq - (int) (0.5 * (float) SRATE) + (int) ((float) pos * (float) SRATE);
if (dragState == WF_DRAG_NONE) {
if (!shiftDown && wxGetApp().getDemodMgr().getDemodulators().size()) {
demod = wxGetApp().getDemodMgr().getLastActiveDemodulator();
} else {
demod = wxGetApp().getDemodMgr().newThread();
demod->getParams().frequency = freq;
if (DemodulatorInstance *last = wxGetApp().getDemodMgr().getLastActiveDemodulator()) {
demod->getParams().bandwidth = last->getParams().bandwidth;
}
demod->run();
wxGetApp().bindDemodulator(demod);
wxGetApp().getDemodMgr().setActiveDemodulator(demod);
}
if (demod == NULL) {
dragState = WF_DRAG_NONE;
return;
}
demod->updateLabel(freq);
DemodulatorThreadCommand command;
command.cmd = DemodulatorThreadCommand::DEMOD_THREAD_CMD_SET_FREQUENCY;
command.int_value = freq;
demod->getCommandQueue()->push(command);
((wxFrame*) parent)->GetStatusBar()->SetStatusText(
wxString::Format(wxT("Set demodulator frequency: %s"),
wxNumberFormatter::ToString((long) freq, wxNumberFormatter::Style_WithThousandsSep)));
wxGetApp().getDemodMgr().setActiveDemodulator(wxGetApp().getDemodMgr().getLastActiveDemodulator(), false);
SetCursor(wxCURSOR_SIZING);
nextDragState = WF_DRAG_FREQUENCY;
mTracker.setVertDragLock(true);
mTracker.setHorizDragLock(false);
} else {
float pos = mTracker.getMouseX();
int center_freq = wxGetApp().getFrequency();
int freq = center_freq - (int) (0.5 * (float) SRATE) + (int) ((float) pos * (float) SRATE);
wxGetApp().getDemodMgr().setActiveDemodulator(wxGetApp().getDemodMgr().getActiveDemodulator(), false);
nextDragState = WF_DRAG_NONE;
}
} else if (dragState == WF_DRAG_RANGE) {
float width = mTracker.getOriginDeltaMouseX();
float pos = mTracker.getOriginMouseX() + width / 2.0;
int center_freq = wxGetApp().getFrequency();
DemodulatorInstance *demod = wxGetApp().getDemodTest();
int freq = center_freq - (int) (0.5 * (float) SRATE) + (int) ((float) pos * (float) SRATE);
int bandwidth = (int)(fabs(width) * (float)SRATE);
if (bandwidth < 1000) {
bandwidth = 1000;
}
if (!bandwidth) {
dragState = WF_DRAG_NONE;
return;
}
if (!shiftDown && wxGetApp().getDemodMgr().getDemodulators().size()) {
demod = wxGetApp().getDemodMgr().getLastActiveDemodulator();
} else {
demod = wxGetApp().getDemodMgr().newThread();
demod->getParams().frequency = freq;
demod->getParams().bandwidth = bandwidth;
demod->run();
wxGetApp().bindDemodulator(demod);
wxGetApp().getDemodMgr().setActiveDemodulator(demod);
}
if (demod == NULL) {
dragState = WF_DRAG_NONE;
return;
}
((wxFrame*) parent)->GetStatusBar()->SetStatusText(
wxString::Format(wxT("Set demodulator frequency: %s"),
wxNumberFormatter::ToString((long) freq, wxNumberFormatter::Style_WithThousandsSep)));
wxGetApp().getDemodMgr().setActiveDemodulator(wxGetApp().getDemodMgr().getLastActiveDemodulator(), false);
demod->updateLabel(freq);
DemodulatorThreadCommand command;
command.cmd = DemodulatorThreadCommand::DEMOD_THREAD_CMD_SET_FREQUENCY;
command.int_value = freq;
demod->getCommandQueue()->push(command);
((wxFrame*) parent)->GetStatusBar()->SetStatusText(
wxString::Format(wxT("Set center frequency: %s"),
wxNumberFormatter::ToString((long) freq, wxNumberFormatter::Style_WithThousandsSep)));
command.cmd = DemodulatorThreadCommand::DEMOD_THREAD_CMD_SET_BANDWIDTH;
command.int_value = bandwidth;
demod->getCommandQueue()->push(command);
}
dragState = WF_DRAG_NONE;
mTracker.setVertDragLock(true);
mTracker.setHorizDragLock(true);
SetCursor(wxCURSOR_CROSS);
}
void WaterfallCanvas::mouseLeftWindow(wxMouseEvent& event) {
mTracker.OnMouseLeftWindow(event);
SetCursor(wxCURSOR_CROSS);
activeDemodulator = NULL;
wxGetApp().getDemodMgr().setActiveDemodulator(NULL);
}
void WaterfallCanvas::mouseEnterWindow(wxMouseEvent& event) {

View File

@ -14,7 +14,7 @@
class WaterfallCanvas: public wxGLCanvas {
public:
enum DragState { WF_DRAG_NONE, WF_DRAG_BANDWIDTH_LEFT, WF_DRAG_BANDWIDTH_RIGHT, WF_DRAG_FREQUENCY };
enum DragState { WF_DRAG_NONE, WF_DRAG_BANDWIDTH_LEFT, WF_DRAG_BANDWIDTH_RIGHT, WF_DRAG_FREQUENCY, WF_DRAG_RANGE };
WaterfallCanvas(wxWindow *parent, int *attribList = NULL);
~WaterfallCanvas();
@ -25,6 +25,7 @@ public:
private:
void OnPaint(wxPaintEvent& event);
void OnKeyDown(wxKeyEvent& event);
void OnKeyUp(wxKeyEvent& event);
void OnIdle(wxIdleEvent &event);
@ -55,12 +56,14 @@ private:
int activeDemodulatorBandwidth;
int activeDemodulatorFrequency;
DemodulatorInstance *activeDemodulator;
DragState dragState;
DragState nextDragState;
// event table
bool shiftDown;
bool altDown;
bool ctrlDown;
// event table
wxDECLARE_EVENT_TABLE();
};

View File

@ -37,12 +37,6 @@ WaterfallContext::WaterfallContext(WaterfallCanvas *canvas, wxGLContext *sharedC
glPixelMapfv(GL_PIXEL_MAP_I_TO_B, 256, &(grad.getBlue())[0]);
}
void WaterfallContext::BeginDraw() {
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
void WaterfallContext::Draw(std::vector<float> &points) {
@ -82,83 +76,3 @@ void WaterfallContext::Draw(std::vector<float> &points) {
}
void WaterfallContext::DrawDemod(DemodulatorInstance *demod, float r, float g, float b) {
if (!demod) {
return;
}
float uxPos = (float) (demod->getParams().frequency - (wxGetApp().getFrequency() - SRATE / 2)) / (float) SRATE;
glDisable(GL_DEPTH_TEST);
glDisable(GL_TEXTURE_2D);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_DST_COLOR);
glColor4f(r, g, b, 0.6);
glBegin(GL_LINES);
glVertex3f((uxPos - 0.5) * 2.0, 1.0, 0.0);
glVertex3f((uxPos - 0.5) * 2.0, -1.0, 0.0);
float ofs = ((float) demod->getParams().bandwidth) / (float) SRATE;
glVertex3f((uxPos - 0.5) * 2.0 - ofs, 1.0, 0.0);
glVertex3f((uxPos - 0.5) * 2.0 - ofs, -1.0, 0.0);
glVertex3f((uxPos - 0.5) * 2.0 + ofs, 1.0, 0.0);
glVertex3f((uxPos - 0.5) * 2.0 + ofs, -1.0, 0.0);
glEnd();
glBlendFunc(GL_SRC_ALPHA, GL_DST_COLOR);
glColor4f(r, g, b, 0.2);
glBegin(GL_QUADS);
glVertex3f((uxPos - 0.5) * 2.0 - ofs, 1.0, 0.0);
glVertex3f((uxPos - 0.5) * 2.0 - ofs, -1.0, 0.0);
glVertex3f((uxPos - 0.5) * 2.0 + ofs, -1.0, 0.0);
glVertex3f((uxPos - 0.5) * 2.0 + ofs, 1.0, 0.0);
glEnd();
glDisable(GL_BLEND);
glEnable(GL_DEPTH_TEST);
}
void WaterfallContext::DrawFreqSelector(float uxPos, float r, float g, float b) {
DemodulatorInstance *demod = wxGetApp().getDemodTest();
if (!demod) {
return;
}
glDisable(GL_DEPTH_TEST);
glDisable(GL_TEXTURE_2D);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_DST_COLOR);
glColor4f(r, g, b, 0.6);
glBegin(GL_LINES);
glVertex3f((uxPos - 0.5) * 2.0, 1.0, 0.0);
glVertex3f((uxPos - 0.5) * 2.0, -1.0, 0.0);
float ofs = ((float) demod->getParams().bandwidth) / (float) SRATE;
glVertex3f((uxPos - 0.5) * 2.0 - ofs, 1.0, 0.0);
glVertex3f((uxPos - 0.5) * 2.0 - ofs, -1.0, 0.0);
glVertex3f((uxPos - 0.5) * 2.0 + ofs, 1.0, 0.0);
glVertex3f((uxPos - 0.5) * 2.0 + ofs, -1.0, 0.0);
glEnd();
glDisable(GL_BLEND);
glEnable(GL_DEPTH_TEST);
}
void WaterfallContext::EndDraw() {
glFlush();
CheckGLError();
}

View File

@ -2,7 +2,6 @@
#include "PrimaryGLContext.h"
#include "Gradient.h"
#include "DemodulatorMgr.h"
#define NUM_WATERFALL_LINES 512
@ -12,11 +11,8 @@ class WaterfallContext: public PrimaryGLContext {
public:
WaterfallContext(WaterfallCanvas *canvas, wxGLContext *sharedContext);
void BeginDraw();
void Draw(std::vector<float> &points);
void DrawFreqSelector(float uxPos, float r = 1, float g = 1, float b = 1);
void DrawDemod(DemodulatorInstance *demod, float r = 1, float g = 1, float b = 1);
void EndDraw();
private:
Gradient grad;