/* * Copyright 2009, Haiku Inc. All rights reserved. * Distributed under the terms of the MIT License. * * Authors: * Alexandre Deckner */ #include "BitmapTexture.h" #include #include #include #include BitmapTexture::BitmapTexture(BBitmap* bitmap) : Texture() { _Load(bitmap); } BitmapTexture::~BitmapTexture() { } void BitmapTexture::_Load(BBitmap* bitmap) { if (bitmap == NULL) return; glGenTextures(1, &fId); glBindTexture(GL_TEXTURE_2D, fId); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, (int) bitmap->Bounds().Width() + 1, (int) bitmap->Bounds().Height() + 1, 0, GL_BGRA, GL_UNSIGNED_BYTE, bitmap->Bits()); printf("BitmapTexture::_Load, loaded texture %u " "(%" B_PRIi32 ", %" B_PRIi32 ", %" B_PRIi32 "bits)\n", fId, (int32) bitmap->Bounds().Width(), (int32) bitmap->Bounds().Height(), 8 * bitmap->BytesPerRow() / (int)bitmap->Bounds().Width()); delete bitmap; }