Now...
Code: Select all
d@kar:~/vs/repo/trunk/vegastrike$ svn merge -r 12628:12640 ../../branches/refactor/vegastrike
--- Merging r12629 through r12640 into '.':
...............
Code: Select all
d@kar:~/vs/repo/trunk/vegastrike$ svn merge -r 12628:12640 ../../branches/refactor/vegastrike
--- Merging r12629 through r12640 into '.':
...............
Cool! I thought I had invented this method; --someone beat me to itklauss wrote:I always do it like that. I have two local working directories: one with the branch, one with trunk. When I'm merging, I go to trunk, do svn up, then svn merge -r<revs> <path-to-local-branch> . --dry-run, if all's ok, svn merge -r<revs> <path-to-local-branch>, svn diff | less (inspect diff - in your case it may be too big for that), and if all's ok svn commit.chuck_starchaser wrote:Okay, but ditto; I think I'll have to do the merges locally onto my trunk pull, and then commit them from my local trunk.This will then pull the diff of your current working dir and your branch, giving you a set of changes to trunk that you will then commit to the trunk, with a message such as "merging reformat branch, r-whatever"
So, you basically have the url's wrong. Your working dir should be trunk, your url's should be pointing to your branch.
Gottcha.That process works perfectly every time.
Of course if you have conflicts at some point you may have to resolve them. It's not hard at all, if svn merge says C <file>, you open up <file> and look for "<<<< mine" (or similar - I always search "<<<") - you have your side of things and their side of things, pick one, or mix and match, remove the conflict markers (the <<< mine and stuff like that), and svn resolved <file>.
Milestones are very poor ways to organise open source projects who do not have a large pool of regular contributors. How can you plan 3 months, 6 months, or a few years into the future when a contributor who is needed to do feature X might not be around then or may prefer to work on something else?klauss wrote:Once was a time where there were milestones.
Releases were often rolled out when milestones were met.
Once was a time where updates were common.
Users reported bugs, updates corrected them.
Once was a time where new milestones were set
But find them I cannot... lost are they.
Anyone know where they went?
Really.
Like, I remember someone had made up a plan and release points and all...
...where did that go?
W.I.P. Work In Progress. If the reformat project is complete, why not label the subject as done (edit first post if your unsure of what im getting at)chuck_starchaser wrote:Yep, it's done, and out of my hands, AFAIK.
What's to "wip in the main subject"? (English is a second language around here.)
What charlieg is trying to say is not to start releasing every Friday; he just wants to see "a" release, for a
frigging change, and he's right: ...
DONEpheonixstorm wrote:W.I.P. Work In Progress. If the reformat project is complete, why not label the subject as done (edit first post if your unsure of what im getting at)chuck_starchaser wrote:Yep, it's done, and out of my hands, AFAIK.
What's to "wip in the main subject"? (English is a second language around here.)
What charlieg is trying to say is not to start releasing every Friday; he just wants to see "a" release, for a
frigging change, and he's right: ...
He's no pusher, though; don't get confused; charlieg has one of the most popular websites about FOSS and gaming, FreeGamer; and he's a friend of all FOSS game projects, and tries to inspire progress wherever he goes. He's like a frequently visiting angel helping us keep the FOSS spirit and focus; and he often quotes The Cathedral and the Bazaar.As for charlie.. yeah I know he wants a real release, but he keeps bringing up the other bit as releasing often. A release soon I like, but releasing often with so few of us doing work I dont like.
Ouch; we've got to do something about that. I'll send a PM to www2.I shall update my head directory. Also, when I update the win32 libraries/dlls can you add them to the svn for me? I don't know how long till I get svn access....
I will. I wasn't sure it was the cubemaps; just an assumption. My thinking was, and is, that planets and oxes probably don't use theklauss wrote:I agree with charlieg about the release.
And I agree the white ships bug must be addressed for such a release.
I think we can set that as a goal: release - whatever there is, it should be released in a packaged form for those that can't or won't build.
However, chuck, I'm not sure the bug comes from cubemaps. I didn't have that bug until your last update to shaders, where there was a marked downgrade in quality - a bug, he'll fix it surely I thought. So take a look at your last commit to shaders:
data$ svn diff -rPREV:HEAD programs
should do the trick.
Code: Select all
// before
rv.xyz = normalize(lpos.xyz*vertex.w - vertex.xyz*lpos.w);
rv.w = 1.0;
// after
rv.xyz = lpos.xyz - vertex.xyz*lpos.w;
rv.w = SUNS_SOLID_ANGLE; // const ~0.0002
DOH!klauss wrote:(lights 2-6 are done per-vertex rather than per-pixel)
(DOH^2)!See line 47 in the same file.
Code: Select all
uniform int light_enabled[gl_MaxLights];
uniform int max_light_enabled;
uniform vec4 detail0Plane;
uniform vec4 detail1Plane;
//temporarily using the Sun's solid angle, as seen from Earth, for the solid
//angle of all light sources, until this parameter can be passed as a uniform
//for each light.
#define SUNS_SOLID_ANGLE (0.000263759)
/* varyings:
* gl_TexCoord[...]
* 0 - tex coord
* 1 - ws normal
* 2 - ws tangent
* 3 - ws binormal
* 4 - vertex-to-eye direction
* 5 - vertex-to-light0@xyz, light_size@z
* 6 - vertex-to-light1@xyz, light_size@z
* 7 - untransformed vertex position
**/
//float selfshadowStep(float VNdotL) { return step(0.0,VNdotL); } // fast but hard selfshadow function
float selfshadowStep(float VNdotL) { return smoothstep(0.0,0.25,VNdotL); } // costly but soft and nice selfshadow function
vec4 lightPosAndSize0(in vec4 vertex)
{
vec4 lpos = gl_LightSource[0].position;
vec4 rv;
rv.xyz = lpos.xyz - vertex.xyz*lpos.w;
rv.w = SUNS_SOLID_ANGLE;
return rv;
}
vec4 lightPosAndSize1(in vec4 vertex)
{
vec4 lpos = gl_LightSource[1].position;
vec4 rv;
rv.xyz = lpos.xyz - vertex.xyz*lpos.w;
rv.w = SUNS_SOLID_ANGLE;
return rv;
}
vec4 lightPosAndSize2(in vec4 vertex)
{
vec4 lpos = gl_LightSource[2].position;
vec4 rv;
rv.xyz = lpos.xyz - vertex.xyz*lpos.w;
rv.w = SUNS_SOLID_ANGLE;
return rv;
}
vec4 lightPosAndSize3(in vec4 vertex)
{
vec4 lpos = gl_LightSource[3].position;
vec4 rv;
rv.xyz = lpos.xyz - vertex.xyz*lpos.w;
rv.w = SUNS_SOLID_ANGLE;
return rv;
}
vec4 lightPosAndSize4(in vec4 vertex)
{
vec4 lpos = gl_LightSource[4].position;
vec4 rv;
rv.xyz = lpos.xyz - vertex.xyz*lpos.w;
rv.w = SUNS_SOLID_ANGLE;
return rv;
}
vec4 lightPosAndSize5(in vec4 vertex)
{
vec4 lpos = gl_LightSource[5].position;
vec4 rv;
rv.xyz = lpos.xyz - vertex.xyz*lpos.w;
rv.w = SUNS_SOLID_ANGLE;
return rv;
}
vec4 lightPosAndSize6(in vec4 vertex)
{
vec4 lpos = gl_LightSource[6].position;
vec4 rv;
rv.xyz = lpos.xyz - vertex.xyz*lpos.w;
rv.w = SUNS_SOLID_ANGLE;
return rv;
}
vec4 lightPosAndSize7(in vec4 vertex)
{
vec4 lpos = gl_LightSource[7].position;
vec4 rv;
rv.xyz = lpos.xyz - vertex.xyz*lpos.w;
rv.w = SUNS_SOLID_ANGLE;
return rv;
}
void lighting2(in vec4 vertex, in vec3 refl, in vec3 normal, inout vec4 pc, inout vec4 sc)
{
vec4 lpatt = lightPosAndSize2(vertex);
float NdotL = dot( lpatt.xyz, normal );
float RdotL = dot( lpatt.xyz, refl );
pc += lpatt.w*( gl_FrontMaterial.ambient * gl_LightSource[2].ambient
+ max(0.0, NdotL) * gl_LightSource[2].diffuse * gl_FrontMaterial.diffuse );
sc += lpatt.w*( pow( max(0.0, RdotL) , max(1.0,gl_FrontMaterial.shininess) ) * selfshadowStep(NdotL)
* gl_LightSource[2].specular * gl_FrontMaterial.specular );
}
void lighting3(in vec4 vertex, in vec3 refl, in vec3 normal, inout vec4 pc, inout vec4 sc)
{
vec4 lpatt = lightPosAndSize3(vertex);
float NdotL = dot( lpatt.xyz, normal );
float RdotL = dot( lpatt.xyz, refl );
pc += lpatt.w*( gl_FrontMaterial.ambient * gl_LightSource[3].ambient
+ max(0.0, NdotL) * gl_LightSource[3].diffuse * gl_FrontMaterial.diffuse );
sc += lpatt.w*( pow( max(0.0, RdotL) , max(1.0,gl_FrontMaterial.shininess) ) * selfshadowStep(NdotL)
* gl_LightSource[3].specular * gl_FrontMaterial.specular );
}
void lighting4(in vec4 vertex, in vec3 refl, in vec3 normal, inout vec4 pc, inout vec4 sc)
{
vec4 lpatt = lightPosAndSize4(vertex);
float NdotL = dot( lpatt.xyz, normal );
float RdotL = dot( lpatt.xyz, refl );
pc += lpatt.w*( gl_FrontMaterial.ambient * gl_LightSource[4].ambient
+ max(0.0, NdotL) * gl_LightSource[4].diffuse * gl_FrontMaterial.diffuse );
sc += lpatt.w*( pow( max(0.0, RdotL) , max(1.0,gl_FrontMaterial.shininess) ) * selfshadowStep(NdotL)
* gl_LightSource[4].specular * gl_FrontMaterial.specular );
}
void lighting5(in vec4 vertex, in vec3 refl, in vec3 normal, inout vec4 pc, inout vec4 sc)
{
vec4 lpatt = lightPosAndSize5(vertex);
float NdotL = dot( lpatt.xyz, normal );
float RdotL = dot( lpatt.xyz, refl );
pc += lpatt.w*( gl_FrontMaterial.ambient * gl_LightSource[5].ambient
+ max(0.0, NdotL) * gl_LightSource[5].diffuse * gl_FrontMaterial.diffuse );
sc += lpatt.w*( pow( max(0.0, RdotL) , max(1.0,gl_FrontMaterial.shininess) ) * selfshadowStep(NdotL)
* gl_LightSource[5].specular * gl_FrontMaterial.specular );
}
void main()
{
// Compute position, eye-to-object direction and normalized world-space normal
vec4 position = gl_ModelViewMatrix * gl_Vertex;
vec3 eyetopos = normalize(position.xyz);
vec3 normal = normalize(gl_NormalMatrix * gl_Normal);
vec3 tangent = normalize(gl_NormalMatrix * gl_MultiTexCoord2.xyz);
vec3 binormal = cross(tangent, normal) * sign(gl_MultiTexCoord2.w);
// Load varyings
gl_TexCoord[0] = gl_MultiTexCoord0;
gl_TexCoord[1].xyz = normal;
gl_TexCoord[2].xyz = tangent;
gl_TexCoord[3].xyz = binormal;
gl_TexCoord[4].xyz = -eyetopos;
gl_TexCoord[5] = lightPosAndSize0(position);
gl_TexCoord[6] = lightPosAndSize1(position);
gl_TexCoord[1].w =
gl_TexCoord[2].w =
gl_TexCoord[3].w =
gl_TexCoord[4].w = 0.0;
gl_TexCoord[7] = position;
// set primary color to the emissive material properties
vec4 pc = gl_FrontMaterial.emission;
vec4 sc = vec4(0.0);
vec3 refl = reflect( eyetopos, normal );
if (max_light_enabled >= 2)
{
if (light_enabled[2] != 0) lighting2(position, refl, normal, pc, sc);
if (light_enabled[3] != 0) lighting3(position, refl, normal, pc, sc);
if (light_enabled[4] != 0) lighting4(position, refl, normal, pc, sc);
if (light_enabled[5] != 0) lighting5(position, refl, normal, pc, sc);
}
// Need this instead of ftransform() for invariance
gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
gl_FrontColor = gl_BackColor = pc;
gl_FrontSecondaryColor = gl_BackSecondaryColor = sc;
}