aboutsummaryrefslogtreecommitdiffstats
path: root/common/rfb/PixelFormat.h
Commit message (Expand)AuthorAgeFilesLines
* Use stdint typesPierre Ossman2023-02-011-20/+20
* Use templates for optimized codePierre Ossman2023-02-011-18/+6
* Fix rounding error in pixel down conversionPierre Ossman2018-03-011-0/+1
* Add pixel conversion correctness testPierre Ossman2014-09-251-0/+6
* PixelTransformer is gone so we can protect these nowPierre Ossman2014-09-251-2/+1
* Add optimised buffer conversionPierre Ossman2014-07-091-0/+23
* Add ability to directly convert between two pixel formatsPierre Ossman2014-07-091-0/+8
* Use lookup tables for pixel upconversionPierre Ossman2014-07-091-0/+6
* Remove full support for colour mapsPierre Ossman2014-07-071-13/+17
* Consistent use of stride vs pitchPierre Ossman2014-07-071-2/+2
* Optimise the RGB to pixel conversion to simple shiftsPierre Ossman2014-07-071-2/+2
* Document the different pixel representations that we deal withPierre Ossman2014-07-071-1/+10
* Remove unused pixel conversion methodPierre Ossman2014-07-071-1/+0
* Converting to RGB might involve a precision increasePierre Ossman2014-07-071-3/+3
* Make sure we check that PixelFormats we get are actually valid.Pierre Ossman2014-07-031-0/+2
* If the client and server are using identical pixel formats, then perform Tigh...DRC2011-11-031-0/+2
* Further optimizations to the Tight encoder to eliminate getImage() overhead. ...DRC2011-08-171-0/+3
* Make sure we handle endian problems in the conversion code.Pierre Ossman2009-04-211-1/+2
* Optimise the common pixel format conversion RGB24 to RGB32.Pierre Ossman2009-03-311-0/+3
* Consolidate pixel conversion into the PixelFormat class and optimise thePierre Ossman2009-03-061-1/+33
* Migrating to new directory structure adopted from the RealVNC's source tree. ...Constantin Kaplinsky2006-05-251-0/+58
.highlight .nn { color: #bb0066; font-weight: bold } /* Name.Namespace */ .highlight .py { color: #336699; font-weight: bold } /* Name.Property */ .highlight .nt { color: #bb0066; font-weight: bold } /* Name.Tag */ .highlight .nv { color: #336699 } /* Name.Variable */ .highlight .ow { color: #008800 } /* Operator.Word */ .highlight .w { color: #bbbbbb } /* Text.Whitespace */ .highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */ .highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */ .highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */ .highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */ .highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */ .highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */ .highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */ .highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */ .highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */ .highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */ .highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */ .highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
cmake_minimum_required(VERSION 2.8.11)

project(tigervnc-java Java)
if(NOT VERSION)
  set(VERSION 1.11.80)
endif()

find_package(Java)

set(DEFAULT_JAVACFLAGS "-source 8 -target 8 -encoding UTF-8 -Xlint:all,-serial,-cast,-unchecked,-fallthrough,-dep-ann,-deprecation,-rawtypes")
set(JAVACFLAGS ${DEFAULT_JAVACFLAGS} CACHE STRING
  "Java compiler flags (Default: ${DEFAULT_JAVACFLAGS})")
message(STATUS "Java compiler flags = ${JAVACFLAGS}")

set(CLASSPATH com/tigervnc/vncviewer)
set(SRCDIR ${CMAKE_CURRENT_SOURCE_DIR})
set(BINDIR ${CMAKE_CURRENT_BINARY_DIR})
set(JAVA_KEYSTORE NOTFOUND CACHE STRING "URL of keystore location")
set(JAVA_KEYSTORE_TYPE "jks" CACHE STRING "Type of keystore (Default: \"jks\")")
set(JAVA_KEY_ALIAS NOTFOUND CACHE STRING "Alias for the keystore entry used to generate the signature")
set(JAVA_STOREPASS NOTFOUND CACHE STRING "Password required to access the keystore")
set(JAVA_KEYPASS NOTFOUND CACHE STRING "Password used to protect the private key of the specified keystore entry")
set(JAVA_TSA_URL NOTFOUND CACHE STRING "URL of Time Stamping Authority (TSA)")

if(NOT BUILD)
	STRING(TIMESTAMP BUILD "%Y%m%d" UTC)
endif()
STRING(TIMESTAMP JAVA_DATE "%Y-%m-%d" UTC)
STRING(TIMESTAMP JAVA_TIME "%H:%M:%S" UTC)

set(JAVA_SOURCES "")
set(JAVA_CLASSES "")

set(JSCH_CLASSNAMES
  DH
  DHEC256
  DHEC384
  DHEC521
  DHECN
  DHGEX256
  DHG1
  DHG14
  DHGEX
  ECDH
  JSch
  Session
  UserAuth
  UserAuthKeyboardInteractive
  UserAuthPassword
  UserAuthPublicKey
  UserAuthNone
  jce/AES128CBC
  jce/AES128CTR
  jce/AES192CBC
  jce/AES192CTR
  jce/AES256CBC
  jce/AES256CTR
  jce/ARCFOUR
  jce/ARCFOUR128
  jce/ARCFOUR256
  jce/BlowfishCBC
  jce/DH
	jce/ECDH256
	jce/ECDH384
	jce/ECDH521
	jce/ECDHN
  jce/HMAC
  jce/HMACMD5
  jce/HMACMD596
  jce/HMACSHA1
  jce/HMACSHA196
  jce/HMACSHA256
  jce/HMACSHA512
  jce/KeyPairGenDSA
  jce/KeyPairGenECDSA
  jce/KeyPairGenRSA
  jce/MD5
  jce/PBKDF
  jce/Random
  jce/SHA1
  jce/SHA256
  jce/SHA384
  jce/SHA512
  jce/SignatureDSA
  jce/SignatureECDSA
  jce/SignatureRSA
  jce/TripleDESCBC
  jce/TripleDESCTR
  jcraft/Compression
  jcraft/HMAC
  jcraft/HMACMD596
  jcraft/HMACMD5
  jcraft/HMACSHA196
  jcraft/HMACSHA1)

foreach(class ${JSCH_CLASSNAMES})
  set(JAVA_SOURCES ${JAVA_SOURCES} com/jcraft/jsch/${class}.java)
  set(JAVA_CLASSES ${JAVA_CLASSES}
    ${BINDIR}/com/jcraft/jsch/${class}.class)
endforeach()

file(GLOB DEPEND_SOURCES
  ${SRCDIR}/${CLASSPATH}/*.java
  ${SRCDIR}/com/tigervnc/rfb/*.java
  ${SRCDIR}/com/tigervnc/rdr/*.java
  ${SRCDIR}/com/tigervnc/network/*.java
  ${SRCDIR}/com/jcraft/jsch/*.java
  ${SRCDIR}/com/jcraft/jsch/jcraft/*.java
  ${SRCDIR}/com/jcraft/jsch/jgss/*.java
  ${SRCDIR}/com/jcraft/jzlib/*.java)

string(REGEX REPLACE " " ";" JAVACFLAGS "${JAVACFLAGS}")
add_custom_command(OUTPUT ${JAVA_CLASSES}
  DEPENDS ${JAVA_SOURCES} ${DEPEND_SOURCES}
  COMMAND ${JAVA_COMPILE}
  ARGS ${JAVACFLAGS} -sourcepath ${SRCDIR} -d ${BINDIR} 
    ${CLASSPATH}/VncViewer.java ${JAVA_SOURCES}
	WORKING_DIRECTORY ${SRCDIR})

configure_file(${CLASSPATH}/timestamp.in ${CLASSPATH}/timestamp)

if(NOT "${SRCDIR}" STREQUAL "${BINDIR}")

set(ICONS
tigervnc.ico
tigervnc.png
insecure.png
secure.png)

foreach(icon ${ICONS})
  add_custom_command(OUTPUT ${BINDIR}/${CLASSPATH}/${icon}
    COMMAND ${CMAKE_COMMAND} -E copy_if_different
      ${SRCDIR}/${CLASSPATH}/${icon} ${BINDIR}/${CLASSPATH}/${icon}
    DEPENDS ${SRCDIR}/${CLASSPATH}/${icon})
endforeach()

endif()

string(REGEX REPLACE "jar" "" Java_PATH ${Java_JAR_EXECUTABLE})
string(REGEX REPLACE ".exe" "" Java_PATH ${Java_PATH})

add_custom_command(OUTPUT VncViewer.jar
  DEPENDS ${JAVA_CLASSES}
    ${SRCDIR}/${CLASSPATH}/MANIFEST.MF
    ${BINDIR}/${CLASSPATH}/timestamp
    ${BINDIR}/${CLASSPATH}/tigervnc.ico
    ${BINDIR}/${CLASSPATH}/tigervnc.png
    ${BINDIR}/${CLASSPATH}/insecure.png
    ${BINDIR}/${CLASSPATH}/secure.png
  COMMAND ${JAVA_ARCHIVE}
  ARGS cfm VncViewer.jar
    ${SRCDIR}/${CLASSPATH}/MANIFEST.MF
    ${CLASSPATH}/timestamp
    ${CLASSPATH}/*.class
    com/tigervnc/rfb/*.class
    com/tigervnc/rdr/*.class
    com/tigervnc/network/*.class
    com/jcraft/jzlib/*.class
    com/jcraft/jsch/jcraft/*.class
    com/jcraft/jsch/jce/*.class
    com/jcraft/jsch/*.class
    com/tigervnc/vncviewer/*.png
    com/tigervnc/vncviewer/tigervnc.ico
  COMMAND ${CMAKE_COMMAND}
  ARGS -DJava_PATH=${Java_PATH} -DJAR_FILE=${BINDIR}/VncViewer.jar
    -DJAVA_KEYSTORE=${JAVA_KEYSTORE}
    -DJAVA_KEYSTORE_TYPE=${JAVA_KEYSTORE_TYPE}
    -DJAVA_STOREPASS=${JAVA_STOREPASS}
    -DJAVA_KEYPASS=${JAVA_KEYPASS}
    -DJAVA_KEY_ALIAS=${JAVA_KEY_ALIAS}
    -DJAVA_TSA_URL=${JAVA_TSA_URL}
    -P ${SRCDIR}/cmake/SignJar.cmake)

add_custom_target(java ALL DEPENDS VncViewer.jar)