Autor Thema: Community-OS  (Gelesen 59699 mal)

DarkThing

  • Beiträge: 652
    • Profil anzeigen
Gespeichert
« Antwort #60 am: 11. April 2005, 17:21 »
Ganz einfach:
Texturen,Sounds, Levels usw. werden nicht direkt gespeichert sondern in Form von Formeln oder so. Wenn diese ausgerechnet sind ergibt das die Positionen von ein paar Vertices oder Pixeln. Die fertigen Dateien werden irgendwo gespeichert und dann normal verarbeitet.

Roshl

  • Beiträge: 1 128
    • Profil anzeigen
    • http://www.lowlevel.net.tc
Gespeichert
« Antwort #61 am: 11. April 2005, 17:47 »
Genau bestes Beispiel:
Man kann ein Fraktal in einer Formel ausdrücken die ein paar Bytes belegen würde. Komplett errechnet, je nach Bildschirmauflösung dann fast 2 MB (800x600x32)
[schild=1]Wieder ein wertvoller(?) Beitrag von Roshl[/schild]

elfish_rider

  • Beiträge: 293
    • Profil anzeigen
Gespeichert
« Antwort #62 am: 11. April 2005, 17:50 »
[schild=1]Greetings to Mr Mandelbrot[/schild]

jeb

  • Beiträge: 341
    • Profil anzeigen
    • http://www.jebdev.net
Gespeichert
« Antwort #63 am: 11. April 2005, 19:12 »
ok, aber für das alles braucht man auch einen guten prozessor (habs auf meinem 1.5 Ghz [mindestvoraussetzung] nicht zum laufen gekriegt. Ist aber schon n paar Monate her).

mfg, jeb

DarkThing

  • Beiträge: 652
    • Profil anzeigen
Gespeichert
« Antwort #64 am: 11. April 2005, 19:33 »
Das alles müsste ja während der (extrem langen) Ladezeit passieren, aber während dem eigentlichen Spiel braucht man ja immer noch n High End PC. Ich denk mal das liegt daran, dass die alle auf Speicherplatz optimiert haben auch wenn das höllisch Performance kostet.
Bei mir läufts recht gut (2.6 GHz, 512 MB Ram, Radeon 9800 SE).

Aber irgendwie kommen wir vom Thema ab. Immerhin waren wir mal bei Bootloadern...

stultus

  • Beiträge: 486
    • Profil anzeigen
Gespeichert
« Antwort #65 am: 11. April 2005, 21:01 »
naja, back2topic, ich find die idee wegen Wiki (ich glaub die entsprang the-programmerfish) is gut, da kann vorallem jeder gleich eintragen :)
MSN: planetconquestdm@hotmail.de
ICQ: 190-084-185

... Wayne?

DarkThing

  • Beiträge: 652
    • Profil anzeigen
Gespeichert
« Antwort #66 am: 12. April 2005, 14:24 »
Macht wirklich Sinn - solange man eine gewisse Ordnung reinbringt. Eine andere Möglichkeit wäre einen eigenen Bereich im Forum anzulegen.

stultus

  • Beiträge: 486
    • Profil anzeigen
Gespeichert
« Antwort #67 am: 12. April 2005, 15:23 »
ich war jetz mal so "frech" und hab unter http://commos.overgames.de/wiki/ nen Wiki installiert (für die dies interessiert, ich hab nen MediaWiki genommen, dasselbe ding was auch auf wikipedia.de läuft ;)) allerdings bin ich da in sachen design eben noch nich ganz durchgestiegen, würd mich freuen wenn einer die hauptseite mit tabellen aufteilen könnte
nen cvs könnt ich da auch noch einrichten, würd nur nen bissel dauern (bin den rest des tages weg, oder zumindenst bis heute abend, wobei ich da evtl. auch ne chance hab an nen rechner zu kommen).
MSN: planetconquestdm@hotmail.de
ICQ: 190-084-185

... Wayne?

T-Head

  • Beiträge: 157
    • Profil anzeigen
    • http://www.t-head.de.vu/
Gespeichert
« Antwort #68 am: 12. April 2005, 22:51 »
Hi,

sieht richtig gut aus! Kann man verwenden!  :)

T-Head

  • Beiträge: 157
    • Profil anzeigen
    • http://www.t-head.de.vu/
Gespeichert
« Antwort #69 am: 14. April 2005, 16:50 »
Hi,

hat eigentlich schon jemand ne C-Funktion zur Textausgabe im Kernel geschrieben??? MAcht so was schon jemand???

DarkThing

  • Beiträge: 652
    • Profil anzeigen
Gespeichert
« Antwort #70 am: 14. April 2005, 18:25 »
AFAIK nein. Aber ich einen Tipp: Schreibt euch eine wirklich gute Funktion dafür, die aber nicht die Zeichen selber anzeigt. Dafür macht man eine Hilfsfunktion:


typedef int (* fnptr_t) (unsigned c, void** helper);

int printfhelp(unsigned c, void **ptr)
{
// Hier wird das Zeichen angezeigt
}

int doprintf(const char *fmt, va_list args, fnptr_t fn, void *ptr)
{
// Hier den Text analysieren und ein Zeichen mit Hilfe des Function
// Pointers ausgeben
// Leerzeichen ausgeben (als Beispiel)
fn(' ', &ptr );
}

void printf(const char *msg, ...)
{
// Parameter zusammensetzen
va_list printfargs;
va_start(printfargs, msg);

// Der letzte Parameter ist ein Function Pointer auf die
// Funktion für die eigneltiche Zeichenausgabe
doprintf(msg, printfargs, printfhelp);

va_end(printfargs);
}

Das hat den Vorteil das man den Teil für die eigentliche Textausgabe jederzeit variiren kann. Z.B. könnte man verschiedene Treiber für Farbe & Schwarzweiß erstellen und dann nur den Function Pointer ändern.

Ich weiß die Erklärung ist nicht so verständlich aber wenn jemand fragen dazu hat kann er ja fragen  :wink:

T-Head

  • Beiträge: 157
    • Profil anzeigen
    • http://www.t-head.de.vu/
Gespeichert
« Antwort #71 am: 14. April 2005, 18:34 »
Hi,

ich wollt eigentlich nicht wissen, wie man ne Funktion macht, sondern ob es schon eine gibt!  :wink:

DarkThing

  • Beiträge: 652
    • Profil anzeigen
Gespeichert
« Antwort #72 am: 14. April 2005, 18:37 »
Also es gibt keine (glaub ich). Bisher existiert nur der Bootloader und ein Testkernel, der aber noch nix macht.

Aber wenn einer sich entschließt eine Funktion zur Bildschirmausgabe zu machen ist diese Technik vielleicht ganz interessant.

T-Head

  • Beiträge: 157
    • Profil anzeigen
    • http://www.t-head.de.vu/
Gespeichert
« Antwort #73 am: 14. April 2005, 18:42 »
Hi,

ja! Wenn du meinst! Kannst ja ne Funktion schreiben!  :wink:
Wenn natürlich alle einverstanden sind!
Oder??? Wer bestimmt jetz eigentlich, wer was macht!
Was ist zu machen, ...

Könnte vieleicht jemand mal ne Liste mit allen Aufgaben Posten, dass sich dan jeder, der will irgendwo eintragen kan, ...

thx

DarkThing

  • Beiträge: 652
    • Profil anzeigen
Gespeichert
« Antwort #74 am: 14. April 2005, 18:44 »
Milestones sind immer gut bei einem größeren Projekt. Aber ich hab im Moment keine Zeit/Lust mich um die komplette Bildschirmausgabe zu kümmern. Aber ich kann durchaus mitmachen oder einen Grundaufbau erstellen.

T-Head

  • Beiträge: 157
    • Profil anzeigen
    • http://www.t-head.de.vu/
Gespeichert
« Antwort #75 am: 14. April 2005, 18:45 »
Hi,

mir is es gelich, wer was macht! Kannst ja mal machen, dann Posten, ...  :P

Jidder

  • Administrator
  • Beiträge: 1 625
    • Profil anzeigen
Gespeichert
« Antwort #76 am: 15. April 2005, 08:51 »
ich würde da gerne was ergänzen:

erstmal eine puts-funktion:
// Name:      puts
// Returns:      ---
// Parameter:   Anzuzeigende Zeichenkette
// Description:   Gibt die angegebene Zeichenkette auf dem Bildschirm aus
void drvDisplay_puts(const unsigned char *s)
{
   while(*s) {
      drv_Display_putch(*s++);
   }
}


dann noch was damit, wenn der cursor unten angekommen ist, nach obengescrollt wird:

void drvDisplay_scrolld(void)
{
register int i;
unsigned short *vidmem = vgaadr;

        // zeile 2-25 um eins nach oben kopieren
for (i=0; i<scrwidth*(scrheight-1);i++)
vidmem[i]=vidmem[i+scrwidth];

        // und zeile 25 leer machen
for (i=scrwidth*(scrheight-1); i<scrwidth*scrheight;i++)
vidmem[i]=0;

if (cur_cursorY > 0)
cur_cursorY--;

return;
}

void drvDisplay_newline(void)
{
// carriage return
cur_cursorX = 0;

// line feed
cur_cursorY++;
if (cur_cursorY > 24)
kvideo_scrolld();

return;
}


müsste dann in void drvDisplay_putch(unsigned char c) hier hin:
  // New Line?
   else if (c == '\n')
   {
      drv_Display_newline();
   }

und hier
  // Evtl. nächste Zeile
   if (cur_cursorX >= scrwidth)
   {
      drv_Display_newline();
   }


basiert auf meinem "video-treiber"
Dieser Text wird unter jedem Beitrag angezeigt.

DarkThing

  • Beiträge: 652
    • Profil anzeigen
Gespeichert
« Antwort #77 am: 15. April 2005, 13:16 »
Statt der puts Funktion sollte man aber möglichst bald eine komplette printf Funktion haben, mit der man auch sowas machen kann:
printf("Inhalt von Var1 = %d", var1");
Diese gibt dann den richtigen text mit Hilfe von putch aus. puts sollte aber trotzdem drin bleiben.

T-Head

  • Beiträge: 157
    • Profil anzeigen
    • http://www.t-head.de.vu/
Gespeichert
« Antwort #78 am: 15. April 2005, 14:40 »
Hi,

irgendwie geht das net so wirklich!
Kannst du bitte mal Posten, wie mans richtig verwendet!
Was muss ich in kernel.c eingeben, damit ein Text ausgegeben wird!
Es kommen zwar keine Fehler, aber Es wird auch nicht Compiliert!

DarkThing

  • Beiträge: 652
    • Profil anzeigen
Gespeichert
« Antwort #79 am: 15. April 2005, 14:47 »
War auch nicht dafür gedacht. Wenn schon müsstest du die boot.ini so ändern dass kein Vesa verwendet wird. Du müsstest ansonsten die Datei display.h includen und natürlich display.c mit kompilieren!!! Und dann so was machen:


#include "driver\display.h"

const char *text;

void main()
{
    // Text anzeigen
    puts(text);
    // Endlosschleife
    for(;;);
}

const char *text = "hallo\n";

[/code]

 

Einloggen