:: PlayerAdvance.org ::  

Précédent   :: PlayerAdvance.org :: > :: Forums Hébergés :: > µLibrary

µLibrary Official µLibrary forum (English / Français)

Publicité

Réponse
 
Outils de la discussion Modes d'affichage
Vieux 18/12/2008, 16h47   #1
ambranera
Newbie
 
Date d'inscription: 18/12/2008
Messages: 4
Par défaut Drawing texture ontop of another

Hi, im trying to draw (image2->texture ) on top of (image1->texture) but it seems that i can not do it properly, the code i'm using is

Code PHP:
void draw_rectangle(int x,int y,UL_IMAGEdest,UL_IMAGEsrc)
{
    
int i=0;
    
int j=0;
    
int    srcWidthsrc->sizeX;
    
int     srcHeightsrc->sizeY;
    
int    destWidthdest->sizeX;
    
void*   destTexture=dest->texture;
    
void*   srcTexture=src->texture;

    
destTexture+=(destWidth x)*2;//jumping y*destWidth pixel(y lines) then jumps x pixels ( the *2 is because i'm handling 2bytes truecolor images)

    
for(j=0;j<srcHeight;j++)//for each row
    
{
        for(
i=0;i<srcWidth;i++)//for each pixel of row
        
{
            *((
uint16*)destTexture)=*((uint16*)srcTexture); //Copies the value
            
destTexture+=2;//jumps two bytes foward
            
srcTexture+=2//jumps two bytes foward
            
        
}
        
destTexture+=(destWidth-srcWidth)*2;//Jumps a row foward
    
}

this code doesnt work, any hints?
ambranera est déconnecté   Réponse avec citation

Publicité

Vieux 18/12/2008, 19h28   #2
Nesgba
Membre confirmé
 
Date d'inscription: 10/11/2005
Messages: 830
Par défaut

*void = 4 bytes generally, transtype is evil

Code PHP:
void draw_rectangle(int x,int y,UL_IMAGEdest,UL_IMAGEsrc)
{
    
int i=0;
    
int j=0;
    
int    srcWidthsrc->sizeX;
    
int    srcHeightsrc->sizeY;
    
int    destWidthdest->sizeX;
    
uint16*   destTexture=(uint16*)dest->texture;
    
uint16*   srcTexture=(uint16*)src->texture;

    
destTexture+=(destWidth x);//jumping y*destWidth pixel(y lines) then jumps x pixels ( the *2 is because i'm handling 2bytes truecolor images)

    
for(j=0;j<srcHeight;j++)//for each row
    
{
        for(
i=0;i<srcWidth;i++)//for each pixel of row
        
{
            *
destTexture=*srcTexture//Copies the value
            
destTexture++;//jumps two bytes foward
            
srcTexture++; //jumps two bytes foward
            
        
}
        
destTexture+=(destWidth-srcWidth);//Jumps a row foward
    
}

Nesgba est déconnecté   Réponse avec citation
Vieux 18/12/2008, 20h05   #3
ambranera
Newbie
 
Date d'inscription: 18/12/2008
Messages: 4
Par défaut

void * is 4 byte
so incrementing void** would add 4 to void**

void is 1byte on ds
so incrementing void* adds 1 to void*

anyway i solved, the surfaces dont have the width of the image but the nearest power of 2, this code works

Code PHP:
void draw_rectangle(int x,int y,UL_IMAGEdest,UL_IMAGEsrc,u8 size)
{
    
int i=0;
    
int j=0;
    
int    srcWidthsrc->sysSizeX;
    
int     srcHeightsrc->sysSizeY;
    
int    srcRealWidthsrc->sizeX;
    
int     srcRealHeightsrc->sizeY;
    
int    destWidthdest->sysSizeX;
//    int    destHeight= dest->sizeY;
    
void*   destTexture=dest->texture;
    
void*   srcTexture=src->texture;

    
destTexture+=(destWidth x)<<1;//Saltiamo tante linee quanto � il valore di y incrementando il puntatore al buffer

    
for(j=0;j<srcRealHeight;j++)//Ripetiamo il ciclo per ogni colonna
    
{
        
        for(
i=0;i<srcRealWidth;i++)
        {
            *((
uint16*)destTexture)=*((uint16*)srcTexture); //Copies First byte
            
            
destTexture+=2;
            
srcTexture+=2;
            
        }
        
srcTexture+=(srcWidth-srcRealWidth)<<1;
        
destTexture+=((destWidth-srcRealWidth)<<1);
    }

ambranera est déconnecté   Réponse avec citation
Réponse

Liens sociaux

Publicité



Utilisateurs regardant la discussion actuelle : 1 (0 membre(s) et 1 invité(s))
 
Outils de la discussion
Modes d'affichage

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Navigation rapide

Discussions similaires
Discussion Auteur Forum Réponses Dernier message
A problem with image drawing, and a question. Netaro Aide au développement 2 05/10/2007 19h13
NDS 3D, Texture et libnds Dr.Vince Aide au développement 4 14/05/2007 00h05
Nomad Nds Texture Converter 1.0 Arcadia Les News 0 21/01/2007 00h06
NDS Nomad Texture Converter nomadteam Librairies et Utilitaires 2 20/01/2007 20h51


Fuseau horaire GMT +2. Il est actuellement 00h16.


Édité par : vBulletin® version 3.7.2
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd. Tous droits réservés.
Version française #16 par l'association vBulletin francophone
Design par Ass-Itch, DJP et Dr.Vince