当前位置: 首页>>代码示例>>Java>>正文


Java SGL.GL_RGBA属性代码示例

本文整理汇总了Java中org.newdawn.slick.opengl.renderer.SGL.GL_RGBA属性的典型用法代码示例。如果您正苦于以下问题:Java SGL.GL_RGBA属性的具体用法?Java SGL.GL_RGBA怎么用?Java SGL.GL_RGBA使用的例子?那么, 这里精选的属性代码示例或许可以为您提供帮助。您也可以进一步了解该属性所在org.newdawn.slick.opengl.renderer.SGL的用法示例。


在下文中一共展示了SGL.GL_RGBA属性的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: getTexture

/**
   * Get a texture from a image file
   * 
   * @param in The stream from which we can load the image
   * @param resourceName The name to give this image in the internal cache
   * @param flipped True if we should flip the image on the y-axis while loading
   * @param target The texture target we're loading this texture into
   * @param minFilter The scaling down filter
   * @param magFilter The scaling up filter
* @param transparent The colour to interpret as transparent or null if none
   * @return The texture loaded
   * @throws IOException Indicates a failure to load the image
   */
  private TextureImpl getTexture(InputStream in, 
  						  String resourceName, 
                            int target, 
                            int magFilter, 
                            int minFilter, boolean flipped, int[] transparent) throws IOException 
  { 
      // create the texture ID for this texture 
      ByteBuffer textureBuffer;
      
      LoadableImageData imageData = ImageDataFactory.getImageDataFor(resourceName);
  	textureBuffer = imageData.loadImage(new BufferedInputStream(in), flipped, transparent);

      int textureID = createTextureID(); 
      TextureImpl texture = new TextureImpl(resourceName, target, textureID); 
      // bind this texture 
      GL.glBindTexture(target, textureID); 
 
      int width;
      int height;
      int texWidth;
      int texHeight;
      
      boolean hasAlpha;
      
  	width = imageData.getWidth();
  	height = imageData.getHeight();
  	hasAlpha = imageData.getDepth() == 32;
  	
  	texture.setTextureWidth(imageData.getTexWidth());
  	texture.setTextureHeight(imageData.getTexHeight());

      texWidth = texture.getTextureWidth();
      texHeight = texture.getTextureHeight();

      IntBuffer temp = BufferUtils.createIntBuffer(16);
      GL.glGetInteger(SGL.GL_MAX_TEXTURE_SIZE, temp);
      int max = temp.get(0);
      if ((texWidth > max) || (texHeight > max)) {
      	throw new IOException("Attempt to allocate a texture to big for the current hardware");
      }
      
      int srcPixelFormat = hasAlpha ? SGL.GL_RGBA : SGL.GL_RGB;
      int componentCount = hasAlpha ? 4 : 3;
      
      texture.setWidth(width);
      texture.setHeight(height);
      texture.setAlpha(hasAlpha);

      if (holdTextureData) {
      	texture.setTextureData(srcPixelFormat, componentCount, minFilter, magFilter, textureBuffer);
      }
      
      GL.glTexParameteri(target, GL.GL_TEXTURE_MIN_FILTER, minFilter); 
      GL.glTexParameteri(target, GL.GL_TEXTURE_MAG_FILTER, magFilter); 
      
      // produce a texture from the byte buffer
      GL.glTexImage2D(target, 
                    0, 
                    dstPixelFormat, 
                    get2Fold(width), 
                    get2Fold(height), 
                    0, 
                    srcPixelFormat, 
                    SGL.GL_UNSIGNED_BYTE, 
                    textureBuffer); 
      
      return texture; 
  }
 
开发者ID:j-dong,项目名称:trashjam2017,代码行数:81,代码来源:InternalTextureLoader.java

示例2: getTexture

/**
 * Load a texture into OpenGL from a BufferedImage
 * 
 * @param resourceName
 *            The location of the resource to load
 * @param resourceimage
 *            The BufferedImage we are converting
 * @param target
 *            The GL target to load the texture against
 * @param dstPixelFormat
 *            The pixel format of the screen
 * @param minFilter
 *            The minimising filter
 * @param magFilter
 *            The magnification filter
 * @return The loaded texture
 * @throws IOException
 *             Indicates a failure to access the resource
 */
public static Texture getTexture(String resourceName,
		BufferedImage resourceimage, int target, int dstPixelFormat,
		int minFilter, int magFilter) throws IOException {
	ImageIOImageData data = new ImageIOImageData();int srcPixelFormat = 0;

	// create the texture ID for this texture
	int textureID = InternalTextureLoader.createTextureID();
	TextureImpl texture = new TextureImpl(resourceName, target, textureID);

	// Enable texturing
	Renderer.get().glEnable(SGL.GL_TEXTURE_2D);

	// bind this texture
	Renderer.get().glBindTexture(target, textureID);

	BufferedImage bufferedImage = resourceimage;
	texture.setWidth(bufferedImage.getWidth());
	texture.setHeight(bufferedImage.getHeight());

	if (bufferedImage.getColorModel().hasAlpha()) {
		srcPixelFormat = SGL.GL_RGBA;
	} else {
		srcPixelFormat = SGL.GL_RGB;
	}

	// convert that image into a byte buffer of texture data
	ByteBuffer textureBuffer = data.imageToByteBuffer(bufferedImage, false, false, null);
	texture.setTextureHeight(data.getTexHeight());
	texture.setTextureWidth(data.getTexWidth());
	texture.setAlpha(data.getDepth() == 32);
	
	if (target == SGL.GL_TEXTURE_2D) {
		Renderer.get().glTexParameteri(target, SGL.GL_TEXTURE_MIN_FILTER, minFilter);
		Renderer.get().glTexParameteri(target, SGL.GL_TEXTURE_MAG_FILTER, magFilter);
		
        if (Renderer.get().canTextureMirrorClamp()) {
        	Renderer.get().glTexParameteri(SGL.GL_TEXTURE_2D, SGL.GL_TEXTURE_WRAP_S, SGL.GL_MIRROR_CLAMP_TO_EDGE_EXT);
        	Renderer.get().glTexParameteri(SGL.GL_TEXTURE_2D, SGL.GL_TEXTURE_WRAP_T, SGL.GL_MIRROR_CLAMP_TO_EDGE_EXT);
        } else {
        	Renderer.get().glTexParameteri(SGL.GL_TEXTURE_2D, SGL.GL_TEXTURE_WRAP_S, SGL.GL_CLAMP);
        	Renderer.get().glTexParameteri(SGL.GL_TEXTURE_2D, SGL.GL_TEXTURE_WRAP_T, SGL.GL_CLAMP);
        }
	}

	Renderer.get().glTexImage2D(target, 
                     0, 
                     dstPixelFormat, 
                     texture.getTextureWidth(), 
                     texture.getTextureHeight(), 
                     0, 
                     srcPixelFormat, 
                     SGL.GL_UNSIGNED_BYTE, 
                     textureBuffer); 

	return texture;
}
 
开发者ID:j-dong,项目名称:trashjam2017,代码行数:75,代码来源:BufferedImageUtil.java

示例3: copyArea

/**
 * Copy an area of the rendered screen into an image. The width and height
 * of the area are assumed to match that of the image
 * 
 * @param target
 *            The target image
 * @param x
 *            The x position to copy from
 * @param y
 *            The y position to copy from
 */
public void copyArea(Image target, int x, int y) {
	int format = target.getTexture().hasAlpha() ? SGL.GL_RGBA : SGL.GL_RGB;
	target.bind();
	GL.glCopyTexImage2D(SGL.GL_TEXTURE_2D, 0, format, x, screenHeight
			- (y + target.getHeight()), target.getTexture()
			.getTextureWidth(), target.getTexture().getTextureHeight(), 0);
	target.ensureInverted();
}
 
开发者ID:j-dong,项目名称:trashjam2017,代码行数:19,代码来源:Graphics.java


注:本文中的org.newdawn.slick.opengl.renderer.SGL.GL_RGBA属性示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。