- Library code update

- project update (added Eigen)

git-svn-id: http://moon:8086/svn/software/trunk/projects/mpsk_rx_gui@94 b431acfa-c32f-4a4a-93f1-934dc6c82436
This commit is contained in:
2014-12-20 20:59:48 +00:00
parent 1b4d8e9f54
commit dc5560392f
312 changed files with 6349 additions and 4195 deletions
@@ -90,7 +90,7 @@ struct CachedImageList : public ReferenceCountedObject,
CachedImage (CachedImageList& list, ImagePixelData* im)
: owner (list), pixelData (im),
lastUsed (Time::getCurrentTime()),
imageSize (im->width * im->height)
imageSize ((size_t) (im->width * im->height))
{
pixelData->listeners.add (&owner);
}
@@ -336,30 +336,36 @@ public:
//==============================================================================
struct ShaderProgramHolder
{
ShaderProgramHolder (OpenGLContext& context, const char* fragmentShader)
ShaderProgramHolder (OpenGLContext& context, const char* fragmentShader, const char* vertexShader)
: program (context)
{
JUCE_CHECK_OPENGL_ERROR
program.addVertexShader (OpenGLHelpers::translateVertexShaderToV3 (
"attribute vec2 position;"
"attribute vec4 colour;"
"uniform vec4 screenBounds;"
"varying " JUCE_MEDIUMP " vec4 frontColour;"
"varying " JUCE_HIGHP " vec2 pixelPos;"
"void main()"
"{"
" frontColour = colour;"
" vec2 adjustedPos = position - screenBounds.xy;"
" pixelPos = adjustedPos;"
" vec2 scaledPos = adjustedPos / screenBounds.zw;"
" gl_Position = vec4 (scaledPos.x - 1.0, 1.0 - scaledPos.y, 0, 1.0);"
"}"));
if (! program.addFragmentShader (OpenGLHelpers::translateFragmentShaderToV3 (fragmentShader)))
if (vertexShader == nullptr)
vertexShader = "attribute vec2 position;"
"attribute vec4 colour;"
"uniform vec4 screenBounds;"
"varying " JUCE_MEDIUMP " vec4 frontColour;"
"varying " JUCE_HIGHP " vec2 pixelPos;"
"void main()"
"{"
"frontColour = colour;"
"vec2 adjustedPos = position - screenBounds.xy;"
"pixelPos = adjustedPos;"
"vec2 scaledPos = adjustedPos / screenBounds.zw;"
"gl_Position = vec4 (scaledPos.x - 1.0, 1.0 - scaledPos.y, 0, 1.0);"
"}";
if (program.addVertexShader (OpenGLHelpers::translateVertexShaderToV3 (vertexShader))
&& program.addFragmentShader (OpenGLHelpers::translateFragmentShaderToV3 (fragmentShader))
&& program.link())
{
JUCE_CHECK_OPENGL_ERROR
}
else
{
lastError = program.getLastError();
program.link();
JUCE_CHECK_OPENGL_ERROR
}
}
OpenGLShaderProgram program;
@@ -368,8 +374,8 @@ public:
struct ShaderBase : public ShaderProgramHolder
{
ShaderBase (OpenGLContext& context, const char* fragmentShader)
: ShaderProgramHolder (context, fragmentShader),
ShaderBase (OpenGLContext& context, const char* fragmentShader, const char* vertexShader = nullptr)
: ShaderProgramHolder (context, fragmentShader, vertexShader),
positionAttribute (program, "position"),
colourAttribute (program, "colour"),
screenBounds (program, "screenBounds")
@@ -656,11 +662,28 @@ public:
struct ImageProgram : public ShaderBase
{
ImageProgram (OpenGLContext& context)
: ShaderBase (context, JUCE_DECLARE_IMAGE_UNIFORMS JUCE_DECLARE_SWIZZLE_FUNCTION
: ShaderBase (context, JUCE_DECLARE_VARYING_COLOUR JUCE_DECLARE_SWIZZLE_FUNCTION
"uniform sampler2D imageTexture;"
"varying " JUCE_HIGHP " vec2 texturePos;"
"void main()"
"{"
JUCE_CLAMP_TEXTURE_COORD
"gl_FragColor = frontColour.a * " JUCE_GET_IMAGE_PIXEL ";"
"}",
"uniform " JUCE_MEDIUMP " vec2 imageLimits;"
JUCE_DECLARE_MATRIX_UNIFORM
"attribute vec2 position;"
"attribute vec4 colour;"
"uniform vec4 screenBounds;"
"varying " JUCE_MEDIUMP " vec4 frontColour;"
"varying " JUCE_HIGHP " vec2 texturePos;"
"void main()"
"{"
"frontColour = colour;"
"vec2 adjustedPos = position - screenBounds.xy;"
"vec2 pixelPos = adjustedPos;"
"texturePos = clamp (" JUCE_MATRIX_TIMES_FRAGCOORD ", vec2 (0, 0), imageLimits);"
"vec2 scaledPos = adjustedPos / screenBounds.zw;"
"gl_Position = vec4 (scaledPos.x - 1.0, 1.0 - scaledPos.y, 0, 1.0);"
"}"),
imageParams (program)
{}