- var
- Texture : array[0..2] of TglBitmap2D; // tag, nacht und wolkentexture als globale variablen
- .
- .
- .
- procedure inittextures; // wird beim starten des programms, also nur einmal aufgerufen
- var
- Stream : TResourceStream;
- begin
- // alle drei texturen laden
- Stream := TResourceStream.CreateFromID(hInstance,5,RT_RCDATA);
- Texture[0] := TglBitmap2D.Create;
- Texture[0].LoadFromStream(stream);
- Stream.Free;
- Stream := TResourceStream.CreateFromID(hInstance,6,RT_RCDATA);
- Texture[1] := TglBitmap2D.Create;
- Texture[1].LoadFromStream(stream);
- Stream.Free;
- Stream := TResourceStream.CreateFromID(hInstance,7,RT_RCDATA);
- Texture[2] := TglBitmap2D.Create;
- Texture[2].LoadFromStream(stream);
- Stream.Free;
- // erste Texture ( day ) binden
- Texture[0].GenTexture;
- Texture[0].Bind();
- glBindTexture(GL_TEXTURE_2D, texture[0].TextureID);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_linear);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_linear);
- glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_modulate);
- end;
- // texture wechseln
- procedure TForm1.rbNightClick(Sender: TObject);
- begin
- Texture[1].GenTexture;
- Texture[1].Bind();
- glBindTexture(GL_TEXTURE_2D, texture[1].TextureID);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_linear);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_linear);
- glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_modulate);
- end;
- // Texture mit wolken
- procedure TForm1.rbPathfinderClick(Sender: TObject);
- begin
- Texture[2].GenTexture;
- Texture[2].Bind();
- glBindTexture(GL_TEXTURE_2D, texture[2].TextureID);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_linear);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_linear);
- glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_modulate);
- end;
- // Texture Day
- procedure TForm1.rbPathfinderClick(Sender: TObject);
- begin
- Texture[0].GenTexture;
- Texture[0].Bind();
- glBindTexture(GL_TEXTURE_2D, texture[0].TextureID);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_linear);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_linear);
- glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_modulate);
- end;
- procedure TForm1.FormDestroy(Sender: TObject);
- begin
- DeactivateRenderingContext;
- DestroyRenderingContext(RC);
- ReleaseDC(Handle, DC);
- Texture[0].Free;
- Texture[1].Free;
- Texture[2].Free;
- end;