]> git.tdb.fi Git - geometrycompositor.git/blobdiff - source/main.c
Use 4096 rather than 10000 as the fixed point multiplier
[geometrycompositor.git] / source / main.c
index 8aa377fbcf40a0c11a768df8bd83d0a3a287ad9b..024e84930d88209f58cc0dcdbe9b643015b959a4 100644 (file)
@@ -103,7 +103,7 @@ typedef struct Compositor
 } Compositor;
 
 static const char *vshader_src =
-       "#version 150\n"
+       "#version 130\n"
        "uniform vec4 geometry;\n"
        "in vec2 vertex;\n"
        "in vec2 texture_coord;\n"
@@ -115,7 +115,7 @@ static const char *vshader_src =
        "}\n";
 
 static const char *fshader_src =
-       "#version 150\n"
+       "#version 130\n"
        "uniform sampler2D image;\n"
        "in vec2 texcoord;\n"
        "out vec4 frag_color;\n"
@@ -125,7 +125,7 @@ static const char *fshader_src =
        "}\n";
 
 static const char *masked_fshader_src =
-       "#version 150\n"
+       "#version 130\n"
        "uniform sampler2D image;\n"
        "uniform sampler2D mask;\n"
        "in vec2 texcoord;\n"
@@ -647,17 +647,17 @@ void update_monitor_vertices(CompositedScreen *screen, CompositedMonitor *monito
 
        monitor->geometry_data[0] = t;
        for(i=0; i<3; ++i)
-               monitor->geometry_data[1+i] = eye[i]*10000;
+               monitor->geometry_data[1+i] = eye[i]*4096;
        for(y=0; y<2; ++y)
                for(x=0; x<2; ++x)
                {
                        i = 1+(1+y*2+x)*3;
-                       monitor->geometry_data[i] = ((x-0.5f)*distance/monitor->perspective)*10000;
-                       monitor->geometry_data[i+1] = (eye[1]+look[1]*distance-(y-0.5f)*look[2]*distance/monitor->perspective/aspect)*10000;
-                       monitor->geometry_data[i+2] = (eye[2]+look[2]*distance+(y-0.5f)*look[1]*distance/monitor->perspective/aspect)*10000;
+                       monitor->geometry_data[i] = ((x-0.5f)*distance/monitor->perspective)*4096;
+                       monitor->geometry_data[i+1] = (eye[1]+look[1]*distance-(y-monitor->vertical_center)*look[2]*distance/monitor->perspective/aspect)*4096;
+                       monitor->geometry_data[i+2] = (eye[2]+look[2]*distance+(y-monitor->vertical_center)*look[1]*distance/monitor->perspective/aspect)*4096;
                }
        for(i=0; i<(t+1)*(t+1)*3; ++i)
-               monitor->geometry_data[16+i] = vertex_data[i]*10000;
+               monitor->geometry_data[16+i] = vertex_data[i]*4096;
 
        for(y=t; y<=t; --y)
                for(x=t; x<=t; --x)
@@ -821,7 +821,7 @@ void update_geometry_correction(Compositor *compositor, CompositedScreen *screen
        use_gl(compositor, screen);
 
        name_ptr = names;
-       for(i=0; i*4<values_length; ++i)
+       for(i=0; i*4+3<values_length; ++i)
        {
                CompositedMonitor *monitor;
 
@@ -831,10 +831,10 @@ void update_geometry_correction(Compositor *compositor, CompositedScreen *screen
                monitor = find_monitor_by_name(screen, name_ptr);
                if(monitor)
                {
-                       monitor->keystone_vertical = values[i*4]/10000.0f;
-                       monitor->cylinder_depth = values[i*4+1]/10000.0f;
-                       monitor->vertical_center = values[i*4+2]/10000.0f;
-                       monitor->perspective = values[i*4+3]/10000.0f;
+                       monitor->keystone_vertical = values[i*4]/4096.0f;
+                       monitor->cylinder_depth = values[i*4+1]/4096.0f;
+                       monitor->vertical_center = values[i*4+2]/4096.0f;
+                       monitor->perspective = values[i*4+3]/4096.0f;
 
                        if(monitor->enabled)
                                update_monitor_vertices(screen, monitor);