Navigation
Artikel
Stuff
RSS Feeds
|
Sourcecodes - Funktion für die Größe von Texturen als 2er PotenzSprachenübersicht/C / C++/ C#/Spieleprogrammierung/DirectX Keywords: 2er Potenz, logarithmus Diese Funktion prüft, ob die Texturengröße eine 2er Potenz ist, wenn nicht gibt es einen Fehler aus, weiter unten wird sie angepasst.
Code: #include <iostream> #include <cmath> int Logarithmus2(int iNumber) { int iLog = 0; int iPow = 1; while(iNumber >= iPow) { iPow *= 2; iLog++; } return iLog - 1; } int main() { int iWidth = 0; int iHeight = 0; int iSize = 0; std::cout << "Laenge: "; std::cin >> iWidth; std::cout << "\nBreite: "; std::cin >> iHeight; //Gibt einen Fehler aus, wenn beide größen nicht gleich groß, oder keine 2er Potenz sind if((iWidth == pow(2,Logarithmus2(iWidth))) && (iHeight == pow(2,Logarithmus2(iHeight))) && (iWidth == iHeight)) std::cout << "Ok"; else std::cout << "Error"; //Passt sie an if(Logarithmus2(iWidth) < Logarithmus2(iHeight)) iSize = pow(2,Logarithmus2(iWidth)); else iSize = pow(2,Logarithmus2(iHeight)); std::cout << std::endl << "Neue Groesse " << iSize << " * " << iSize << std::endl; return 0; }
Code: int powerof2(int currentsize) { int i=1; while(i<currentsize) i*=2; return i; } Gibt es noch irgendwelche Fragen, oder wollen Sie über den Artikel diskutieren? Sprachenübersicht/C / C++/ C#/Spieleprogrammierung/DirectX/Funktion für die Größe von Texturen als 2er Potenz |