Pencere boyutlarını değiştirmek için aslında iki yöntem bulunmaktadır.
Normali ve alışa gelmiş metot; fare ile boyutlandırmak. Fakat bu yöntem kullanımı kolay ve kod yazma ihtiyacı gerektirmese de, pencere açısından pek simetrik bir durum değildir.
Konumuz olan diğer yöntem ise; monitörün çözünürlüğüne uygun boyutları, programa yazdığımız komutlar ile pencereyi yeniden boyutlandırmak.
Penceremizin boyutlarını değiştireceğimiz fonksiyonu tanımakla başlayalım.
glfwSetWindowSize Fonksiyonu
// PrototipBu fonksiyon, pencerenin boyut özelliklerini yeniden tanımlayarak, pencere boyutunu değiştirmektedir.
void glfwSetWindowSize(GLFWwindow *window, int width, int height);
// Kullanımı
glfwSetWindowSize(window, 1280, 720);
Fonksiyon Parametreleri;
- [in] GLFWwindow *window - Yeniden boyutlandıracağımız pencere nesnesi
- [in] int width - Pencere'nin yeni boyutunun genişlik bilgisi.
- [in] int height - Pencere'nin yeni boyutunun yükseklik bilgisi.
// Klavye mesajlarının işlendiği callback fonksiyonu
static void klavye_callback(GLFWwindow *window, int key, int scancode, int action, int mods)
{
// Esc tuşuna basıldığında, pencereyi kapat
if(key == GLFW_KEY_ESCAPE && action == GLFW_PRESS)
glfwSetWindowShouldClose(window, GL_TRUE);
else if(key == GLFW_KEY_1 && action == GLFW_PRESS){
glfwSetWindowSize(window, 800, 600);
cout << "GLFW -> Pencere yeniden boyutlandirildi." << endl;
}
else if(key == GLFW_KEY_2 && action == GLFW_PRESS){
glfwSetWindowSize(window, 1280, 720);
cout << "GLFW -> Pencere yeniden boyutlandirildi." << endl;
}
else if(key == GLFW_KEY_3 && action == GLFW_PRESS){
glfwSetWindowSize(window, 1400, 900);
cout << "GLFW -> Pencere yeniden boyutlandirildi." << endl;
}
}
Bu sefer klavye fonksiyonunda '1', '2' ve '3' tuşlarına basıldığında: glfwSetWindowSize fonksiyonuna farklı değerler vererek, pencerede yeniden boyutlandırma işlemini gerçekleştiriyor.
Ayrıca, önceki yazımı pekişmek adına şöyle bir örnek sunuyorum.
void pencereBoyut_callback(GLFWwindow *window, int width, int height)Bu örnekte ise, 'pencereBoyut_callback' fonksiyonu içerisinde pencere boyutlarında oynama gerçekleştiğinde; eğer pencere boyutu '1800 x 900'dan büyükse, yeniden pencereyi '1400 x 900' boyutlarına geri döndürüyor.
{
if(width > 1800 || height > 900){
glfwSetWindowSize(window, 1400, 900);
cout << "\n\nResize Callback fonksiyonu" << endl;
cout << "------------------------------------------" << endl;
cout << "Pencere yeniden boyutlandirildi." << endl;
}
}
Bu yazımızda ileride ihtiyaç duyabileceğimiz pencere boyutlarının bilgisini elde etmeyi öğrendik.
Bitbucket: main.cpp dosyasını indirmek için tıklayın.
Referans:
http://www.glfw.org/docs/latest/group__window.html
 
 

 
 
 
 
 
 
 
 Merhaba, ben Mustafa OĞUZ. Bilgi İşlem uzmanlığının yanında Yazılım ve Webmaster işleri ile haşır neşirim. Bu işlerden arta kalan zamanda amatör olarak Grafik tasarım ve blog yazarlığı yapmaktayım...
Merhaba, ben Mustafa OĞUZ. Bilgi İşlem uzmanlığının yanında Yazılım ve Webmaster işleri ile haşır neşirim. Bu işlerden arta kalan zamanda amatör olarak Grafik tasarım ve blog yazarlığı yapmaktayım... 
Hiç yorum yok:
Yorum Gönder