Without caching, this would cause a problem with headers not being found
if you did the cmake step twice because the FREETYPE2_FOUND var is cached
and so it wouldn't run through that script again and wouldn't set
FREETYPE2_INCLUDE_DIRS.
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
'over' variable needs to be an integer or we'll end up shifting stuff
by half a pixel which causes weird render, especially for fonts.
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Note that the d_zoom_* vars are kept as double to avoid error build-up
when changing them a lot from the UI.
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Note that the zoom_* vars are kept as double to avoid error build-up
when changing them a lot from the UI.
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
These are purely display things that allow to highligh chunks of spectrum
of interest. (like currently selected channel)
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
There is a lot of parameters that have no influence on the internal
computations but solely affect the rendering call. The height / width
are the only two that were supported previously.
This commit re-structures the drawing code and introduces a lot more
of those parameters. Instead of just passing them all as arguments, a
'struct fosphor_render' is introduced to hold them.
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
The texture coordinates didn't match what the normal OpenGL bilinear
mapper does. It was off by half a texel.
This is needed because the color in the texture is considered to be a
sample at the center of the texel. (hence 0.5f, 0.5f offset removed)
For more details on bilinear from OpenGL :
http://hacksoflife.blogspot.be/2009/12/texture-coordinate-system-for-opengl.html
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
This is required for OSX where you need to tell the GL context when resize
has occured and stuff like that.
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
On system with an integrated gpu + external gpu, the integrated one looks
great "on paper". Plenty of local ram, plenty of compute units, ...
But in practice, it sucks against the external one. So here, we prefer
NVidia / AMD.
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
There is several things we need in it :
- linux: the X multi-threading fixes
- all: the flowgraph shutdown sequence fixes
- all: the newest gr-fft window stuff
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
- It's not longer hardcoded / computed in the kernel, but computed
once and read from constant memory
- By default it uses a periodic Hamming window
- But you can load any window as a simple array of float
- Different types of window is deemed out-of-scope here. The default
is provided just for convenience to have something valid.
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
The one currently shipped with GR is broken ... so don't depend on it.
The name change is needed for it to take precendence over the one in
the system directories.
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
The setters can be called from any thrad and will just set the
member variables and a flag asking the main processing thread to apply
the new settings on the next iteration.
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Although this is not actually used anywhere yet, but will be used in the
drawing routines to draw a proper scale.
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
The CL code keeps its own copy since those values are tweaked to be
applied in the kernel. We may also need the callback in the future if
instead of storing them we reconfigure the kernel at that point.
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Originally I wanted the CL/GL part to be as separate as possible and
have no shared data. But it's too inconvenient since a beside the
CL / GL objects there is also configuration data that should be shared
and distributed between the two.
So instead we still have separate gl/cl state that are restricted but
the function act on a shared 'struct fosphor' object that contains
everything that's shared and exposed to both cl.c and gl.c
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Originally the symbol would just not be defined.
Now we keep the original import error context and re-raise it if we're
asked to instanciate the block. This should give the user better
visibility on what's wrong.
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>