From patchwork Thu Jul 21 12:36:33 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexandros Frantzis X-Patchwork-Id: 2927 Return-Path: X-Original-To: patchwork@peony.canonical.com Delivered-To: patchwork@peony.canonical.com Received: from fiordland.canonical.com (fiordland.canonical.com [91.189.94.145]) by peony.canonical.com (Postfix) with ESMTP id 7E62223F4D for ; Thu, 21 Jul 2011 12:41:44 +0000 (UTC) Received: from mail-qy0-f173.google.com (mail-qy0-f173.google.com [209.85.216.173]) by fiordland.canonical.com (Postfix) with ESMTP id 3774FA18287 for ; Thu, 21 Jul 2011 12:41:44 +0000 (UTC) Received: by qyk10 with SMTP id 10so3962301qyk.11 for ; Thu, 21 Jul 2011 05:41:43 -0700 (PDT) Received: by 10.229.217.3 with SMTP id hk3mr207820qcb.38.1311252103704; Thu, 21 Jul 2011 05:41:43 -0700 (PDT) X-Forwarded-To: linaro-patchwork@canonical.com X-Forwarded-For: patch@linaro.org linaro-patchwork@canonical.com Delivered-To: patches@linaro.org Received: by 10.229.217.78 with SMTP id hl14cs139458qcb; Thu, 21 Jul 2011 05:41:43 -0700 (PDT) Received: by 10.227.19.130 with SMTP id a2mr165691wbb.88.1311251796293; Thu, 21 Jul 2011 05:36:36 -0700 (PDT) Received: from adelie.canonical.com (adelie.canonical.com [91.189.90.139]) by mx.google.com with ESMTP id c13si2393565wbh.40.2011.07.21.05.36.35; Thu, 21 Jul 2011 05:36:36 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of bounces@canonical.com designates 91.189.90.139 as permitted sender) client-ip=91.189.90.139; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of bounces@canonical.com designates 91.189.90.139 as permitted sender) smtp.mail=bounces@canonical.com Received: from loganberry.canonical.com ([91.189.90.37]) by adelie.canonical.com with esmtp (Exim 4.71 #1 (Debian)) id 1QjsUU-0000DB-5W for ; Thu, 21 Jul 2011 12:36:34 +0000 Received: from loganberry.canonical.com (localhost [127.0.0.1]) by loganberry.canonical.com (Postfix) with ESMTP id 4E0CE2E8952 for ; Thu, 21 Jul 2011 12:36:33 +0000 (UTC) MIME-Version: 1.0 X-Launchpad-Project: glmark2 X-Launchpad-Branch: ~glmark2-dev/glmark2/trunk X-Launchpad-Message-Rationale: Subscriber X-Launchpad-Branch-Revision-Number: 45 X-Launchpad-Notification-Type: branch-revision To: Linaro Patch Tracker From: noreply@launchpad.net Subject: [Branch ~glmark2-dev/glmark2/trunk] Rev 45: When loading a texture that is not RGBA or RGB, convert it to one of these two formats. Message-Id: <20110721123633.17019.35345.launchpad@loganberry.canonical.com> Date: Thu, 21 Jul 2011 12:36:33 -0000 Reply-To: noreply@launchpad.net Sender: bounces@canonical.com Errors-To: bounces@canonical.com Precedence: bulk X-Generated-By: Launchpad (canonical.com); Revision="13475"; Instance="initZopeless config overlay" X-Launchpad-Hash: f991388ad68fa6c593048d110ed3083c56622622 ------------------------------------------------------------ revno: 45 committer: Alexandros Frantzis timestamp: Mon 2010-07-12 18:34:44 +0300 message: When loading a texture that is not RGBA or RGB, convert it to one of these two formats. modified: src/texture.cpp --- lp:glmark2 https://code.launchpad.net/~glmark2-dev/glmark2/trunk You are subscribed to branch lp:glmark2. To unsubscribe from this branch go to https://code.launchpad.net/~glmark2-dev/glmark2/trunk/+edit-subscription === modified file 'src/texture.cpp' --- src/texture.cpp 2010-07-12 10:06:29 +0000 +++ src/texture.cpp 2010-07-12 15:34:44 +0000 @@ -15,25 +15,45 @@ nOfColors = surface->format->BytesPerPixel; if (nOfColors == 4) { - if (surface->format->Rmask == 0x000000ff) - texture_format = GL_RGBA; - else { - fprintf(stderr, "Error: %s: Unsupported pixel format BGRA\n", pFilename); - return 1; + texture_format = GL_RGBA; + // If the picture is not RGBA convert it + if (surface->format->Rmask != 0x000000ff) { + SDL_PixelFormat format = { + surface->format->palette, + surface->format->BitsPerPixel, + surface->format->BytesPerPixel, + surface->format->Rloss, surface->format->Gloss, + surface->format->Bloss, surface->format->Aloss, + 0, 8, 16, 24, + 0x000000ff, 0x0000ff00, 0x00ff0000, 0xff000000, + surface->format->colorkey, surface->format->alpha + }; + SDL_Surface *tmp = SDL_ConvertSurface(surface, &format, 0); + SDL_FreeSurface(surface); + surface = tmp; + } + } + else if (nOfColors == 3) { + texture_format = GL_RGB; + // If the picture is not RGB convert it + if (surface->format->Rmask != 0x000000ff) { + SDL_PixelFormat format = { + surface->format->palette, + surface->format->BitsPerPixel, + surface->format->BytesPerPixel, + surface->format->Rloss, surface->format->Gloss, + surface->format->Bloss, surface->format->Aloss, + 0, 8, 16, 24, + 0x000000ff, 0x0000ff00, 0x00ff0000, 0xff000000, + surface->format->colorkey, surface->format->alpha + }; + SDL_Surface *tmp = SDL_ConvertSurface(surface, &format, 0); + SDL_FreeSurface(surface); + surface = tmp; } } else { - if (nOfColors == 3) { - if (surface->format->Rmask == 0x000000ff) - texture_format = GL_RGB; - else { - fprintf(stderr, "Error: %s: Unsupported pixel format BGR\n", pFilename); - return 1; - } - } - else { - printf("warning: the image is not truecolor.. this will probably break\n"); - } + printf("warning: the image is not truecolor.. this will probably break\n"); } glGenTextures(3, pTexture);